Skip to content

Commit

Permalink
[refactor] RealmStorageCode
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeonhui committed Dec 13, 2022
1 parent d61656c commit ee2897c
Showing 1 changed file with 10 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,17 @@ enum RealmStorageError: Error {

final class RealmStorage {
static let shared = RealmStorage()

private let persistentContainer = try? Realm()

private init() {
// Realm file path
#if DEBUG
print(Realm.Configuration.defaultConfiguration.fileURL!)
print(Realm.Configuration.defaultConfiguration.fileURL!)
#endif
}
}

private let persistentContainer = try? Realm()

extension RealmStorage {
@discardableResult
func createEntity<O: Object>(entity: O) throws -> O {
guard let persistentContainer = persistentContainer else {
Expand All @@ -39,7 +40,7 @@ final class RealmStorage {
}
return entity
}

func readEntities<O: Object>(type: O.Type, filter: NSPredicate? = nil) throws -> [O] {
guard let persistentContainer = persistentContainer else {
throw RealmStorageError.realmObjectError
Expand All @@ -50,7 +51,7 @@ final class RealmStorage {
return Array(persistentContainer.objects(type))
}
}

@discardableResult
func updateEntity<O: Object>(entity: O) throws -> O {
guard let persistentContainer = persistentContainer else {
Expand All @@ -61,7 +62,7 @@ final class RealmStorage {
}
return entity
}

@discardableResult
func deleteEntity<O: Object>(entity: O) throws -> O {
guard let persistentContainer = persistentContainer else {
Expand All @@ -70,10 +71,10 @@ final class RealmStorage {
try persistentContainer.write {
persistentContainer.delete(entity)
}

return entity
}

@discardableResult
func deleteAllEntity<O: Object>(type: O.Type) throws -> [O] {
guard let persistentContainer = persistentContainer else {
Expand All @@ -86,12 +87,4 @@ final class RealmStorage {
}
return Array(persistentContainer.objects(type))
}

func findEntities<O: Object>(type: O.Type, filter: NSPredicate) throws -> [O] {
guard let persistentContainer = persistentContainer else {
throw RealmStorageError.realmObjectError
}
return Array(persistentContainer.objects(type).filter(filter))
}

}

0 comments on commit ee2897c

Please sign in to comment.