diff --git a/Examples/xx-messenger/Sources/AppCore/DBManager/DBManager.swift b/Examples/xx-messenger/Sources/AppCore/DBManager/DBManager.swift index f591dc1c2d37c3f14cf1a47905ccee2e3379fad1..beec52f86eeb3574b5da410923bc10ee3a9405a9 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 a3f018b1d617ad402a4c5f8914b07a2c622150ac..d7e5e93db530327715ce72cc7cae602fb1802c8c 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 69ab6e020d1ae782b048c82d75fb667eb3d7b985..557a1a53cfaa5902f6a51e2db5189285bc65ec4a 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) + } } } }