Rocket.Chat.ReactNative/ios/RocketChat Watch App/Database/Model/UserModel.swift

38 lines
772 B
Swift

import CoreData
final class UserModel {
private let context: NSManagedObjectContext
init(context: NSManagedObjectContext) {
self.context = context
}
func upsert(_ newUser: MergedRoom.Message.User) -> User {
let user = user(id: newUser._id, in: context)
user.name = newUser.name
user.username = newUser.username
return user
}
func fetch(id: String) -> User {
user(id: id, in: context)
}
}
extension UserModel {
private func user(id: String, in context: NSManagedObjectContext) -> User {
let request = User.fetchRequest()
request.predicate = NSPredicate(format: "id == %@", id)
guard let user = try? context.fetch(request).first else {
let user = User(context: context)
user.id = id
return user
}
return user
}
}