From d70c0920f67d61320c1242e4cdea1322b5a6dea0 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 22 Sep 2022 17:33:29 +0200 Subject: [PATCH] Update DBManager --- .../Sources/AppCore/DBManager/DBManager.swift | 12 +++++++++--- .../Sources/AppCore/DBManager/DBManagerMakeDB.swift | 10 +++------- .../AppCore/DBManager/DBManagerRemoveDB.swift | 8 +++++++- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Examples/xx-messenger/Sources/AppCore/DBManager/DBManager.swift b/Examples/xx-messenger/Sources/AppCore/DBManager/DBManager.swift index f591dc1c..beec52f8 100644 --- a/Examples/xx-messenger/Sources/AppCore/DBManager/DBManager.swift +++ b/Examples/xx-messenger/Sources/AppCore/DBManager/DBManager.swift @@ -1,3 +1,4 @@ +import Foundation import XXModels public struct DBManager { @@ -8,7 +9,12 @@ public struct DBManager { } extension DBManager { - public static func live() -> DBManager { + public static func live( + url: URL = FileManager.default + .urls(for: .applicationSupportDirectory, in: .userDomainMask) + .first! + .appendingPathComponent("database") + ) -> DBManager { class Container { var db: Database? } @@ -17,9 +23,9 @@ extension DBManager { return DBManager( hasDB: .init { container.db != nil }, - makeDB: .live(setDB: { container.db = $0 }), + makeDB: .live(url: url, setDB: { container.db = $0 }), getDB: .live(getDB: { container.db }), - removeDB: .live(getDB: { container.db }, unsetDB: { container.db = nil }) + removeDB: .live(url: url, getDB: { container.db }, unsetDB: { container.db = nil }) ) } } diff --git a/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerMakeDB.swift b/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerMakeDB.swift index a3f018b1..d7e5e93d 100644 --- a/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerMakeDB.swift +++ b/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerMakeDB.swift @@ -13,18 +13,14 @@ public struct DBManagerMakeDB { extension DBManagerMakeDB { public static func live( + url: URL, setDB: @escaping (Database) -> Void ) -> DBManagerMakeDB { DBManagerMakeDB { - let dbDirectoryURL = FileManager.default - .urls(for: .applicationSupportDirectory, in: .userDomainMask) - .first! - .appendingPathComponent("database") - try? FileManager.default - .createDirectory(at: dbDirectoryURL, withIntermediateDirectories: true) + .createDirectory(at: url, withIntermediateDirectories: true) - let dbFilePath = dbDirectoryURL + let dbFilePath = url .appendingPathComponent("db") .appendingPathExtension("sqlite") .path diff --git a/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerRemoveDB.swift b/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerRemoveDB.swift index 69ab6e02..557a1a53 100644 --- a/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerRemoveDB.swift +++ b/Examples/xx-messenger/Sources/AppCore/DBManager/DBManagerRemoveDB.swift @@ -13,12 +13,18 @@ public struct DBManagerRemoveDB { extension DBManagerRemoveDB { public static func live( + url: URL, getDB: @escaping () -> Database?, unsetDB: @escaping () -> Void ) -> DBManagerRemoveDB { DBManagerRemoveDB { - try getDB()?.drop() + let db = getDB() unsetDB() + try db?.drop() + let fm = FileManager.default + if fm.fileExists(atPath: url.path) { + try fm.removeItem(atPath: url.path) + } } } } -- GitLab