Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class User: Object {
- @objc dynamic var email: String = ""
- @objc dynamic var password: String = ""
- let subscriptions = List<Subscription>()
- convenience init(email: String, password: String) {
- self.init()
- self.email = email
- self.password = password
- }
- }
- class Subscription: Object {
- @objc dynamic var id: String?
- @objc dynamic var status: String?
- @objc dynamic var lastUpdated: Date?
- convenience init(id: String, status: String) {
- self.init()
- self.id = id
- self.status = status
- lastUpdated = Date()
- }
- }
- class func create(user: User, _ completion: (Error?) -> Void) {
- do {
- let ctx = try Realm()
- if ctx.isEmpty {
- try ctx.write {
- ctx.add(user)
- completion(nil)
- }
- } else {
- completion(nil)
- }
- } catch {
- completion(DBError.unableToAccessDatabase)
- }
- }
- class func add(Subscription: Subscription, _ completion: (Error?) -> Void) {
- do {
- let ctx = try Realm()
- if let user = ctx.objects(User.self).last {
- let predicate = NSPredicate(format: "id = %@", subscription.id!)
- let sub = user.subscriptions.filter(predicate).first
- if sub == nil {
- try ctx.write({
- user.subscriptions.append(subscription)
- completion(nil)
- })
- }
- }
- } catch {
- completion(DBError.unableToAccessDatabase)
- }
- }
Add Comment
Please, Sign In to add comment