Add CoreData

This commit is contained in:
2023-01-13 19:12:23 +01:00
parent ee03888990
commit 94bb75bef8
8 changed files with 288 additions and 20 deletions
@@ -0,0 +1,43 @@
//
// User+CoreDataClass.swift
// Firebonk
//
// Created by Patrick Müller on 13.01.23.
//
import Foundation
import CoreData
@objc(User)
public class User: NSManagedObject {
@nonobjc public class func getAll() -> [User] {
let managedContext =
PersistenceController.shared.context
do {
return try managedContext.fetch(User.fetchRequest())
} catch let error as NSError {
print("Could not fetch. \(error), \(error.userInfo)")
return []
}
}
@nonobjc public class func getSpecified(sortDescriptors: [NSSortDescriptor] = [], searchPredicate: NSPredicate? = nil) -> [User]{
let managedContext =
PersistenceController.shared.context
let fetchRequest: NSFetchRequest = User.fetchRequest()
fetchRequest.sortDescriptors = sortDescriptors
if(searchPredicate != nil) {
fetchRequest.predicate = searchPredicate
}
do {
return try managedContext.fetch(fetchRequest)
} catch let error as NSError {
print("Could not fetch. \(error), \(error.userInfo)")
return []
}
}
}
@@ -0,0 +1,26 @@
//
// User+CoreDataProperties.swift
// Firebonk
//
// Created by Patrick Müller on 13.01.23.
//
import Foundation
import CoreData
extension User {
@nonobjc public class func fetchRequest() -> NSFetchRequest<User> {
return NSFetchRequest<User>(entityName: "User")
}
@NSManaged public var username: String?
@NSManaged public var jwt: String?
@NSManaged public var firstName: String?
}
extension User : Identifiable {
}