|
|
|
|
@ -64,6 +64,9 @@ public class StoreCenter { |
|
|
|
|
|
|
|
|
|
/// Used for testing, gives the project name to retrieve classes from names |
|
|
|
|
var classProject: String? = nil |
|
|
|
|
|
|
|
|
|
var useWebsockets: Bool = false |
|
|
|
|
var useSynchronization: Bool = false |
|
|
|
|
|
|
|
|
|
init(directoryName: String? = nil) { |
|
|
|
|
|
|
|
|
|
@ -87,22 +90,31 @@ public class StoreCenter { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public func configureURLs(secureScheme: Bool, domain: String, webSockets: Bool = true) { |
|
|
|
|
|
|
|
|
|
self.useWebsockets = webSockets |
|
|
|
|
|
|
|
|
|
let urlManager: URLManager = URLManager(secureScheme: secureScheme, domain: domain) |
|
|
|
|
self._urlManager = urlManager |
|
|
|
|
self._services = Services(storeCenter: self, url: urlManager.api) |
|
|
|
|
self.tokenKeychain = KeychainStore(serverId: urlManager.api) |
|
|
|
|
|
|
|
|
|
self._dataAccess = self.mainStore.registerSynchronizedCollection() |
|
|
|
|
if self.useSynchronization { |
|
|
|
|
self._dataAccess = self.mainStore.registerSynchronizedCollection() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Logger.log("Sync URL: \(urlManager.api)") |
|
|
|
|
|
|
|
|
|
if webSockets && self.userId != nil { |
|
|
|
|
if self.userId != nil { |
|
|
|
|
self._configureWebSocket() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fileprivate func _configureWebSocket() { |
|
|
|
|
|
|
|
|
|
guard self.useWebsockets else { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
self._webSocketManager?.disconnect() |
|
|
|
|
self._webSocketManager = nil |
|
|
|
|
|
|
|
|
|
@ -540,11 +552,13 @@ public class StoreCenter { |
|
|
|
|
self.mainStore.loadCollectionsFromServer(clear: clear) |
|
|
|
|
|
|
|
|
|
// request data that has been shared with the user |
|
|
|
|
Task { |
|
|
|
|
do { |
|
|
|
|
try await self.service().getUserDataAccess() |
|
|
|
|
} catch { |
|
|
|
|
Logger.error(error) |
|
|
|
|
if self.useSynchronization { |
|
|
|
|
Task { |
|
|
|
|
do { |
|
|
|
|
try await self.service().getUserDataAccess() |
|
|
|
|
} catch { |
|
|
|
|
Logger.error(error) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|