Files
raspberry/iOS/Wallet/Sources/AppDelegate+Injection.swift
Jura Shikin 9b34d78319 WiP
2023-01-23 23:15:06 +03:00

96 lines
4.0 KiB
Swift

//
// AppDelegate+Injection.swift
// Wallet
//
// Created by Saveliy Stavitsky on 8/4/21.
// Copyright © 2021 AM. All rights reserved.
//
import Resolver
import RealmSwift
import WalletFoundation
extension ResolverScope {
static let userSession = ResolverScopeCache()
}
extension Resolver.Name {
static let realmInMemory = Self("realmInMemory")
static let realmOrders = Self("realmOrders")
static let realmDeals = Self("realmDeals")
static let realmP2PLists = Self("realmP2PLists")
}
extension Resolver: ResolverRegistering {
public static func registerAllServices() {
// register { CCCP.Service.ExchangeRequests() }.scope(.userSession) // PAYCASH-NEW
// Old
register(Realm.self, name: .realmInMemory) {
let config = Realm.Configuration(
inMemoryIdentifier: "realmInMemory_\(Accounts().current?.name ?? "")",
deleteRealmIfMigrationNeeded: true,
objectTypes: [P2PBalance.self]
)
// swiftlint:disable force_try
return try! Realm(configuration: config)
}.scope(.userSession)
register { P2PBalancesService() }.scope(.application)
register { resolve(Realm.self, name: .realmInMemory).objects(P2PBalance.self) }.scope(.unique)
register(Realm.self, name: .realmOrders) {
let config = Realm.Configuration(
inMemoryIdentifier: "p2pOrders",
deleteRealmIfMigrationNeeded: true,
objectTypes: [P2POrder.self, P2PRating.self]
)
// swiftlint:disable force_try
return try! Realm(configuration: config)
}.scope(.application)
register { P2POrdersService() }.scope(.application)
register { resolve(Realm.self, name: .realmOrders).objects(P2POrder.self) }.scope(.unique)
register(Realm.self, name: .realmDeals) {
var config = Realm.Configuration(
inMemoryIdentifier: "p2pDeals_\(ApplicationEnvironment.shared().current.contract(.p2p))_\(Accounts().current?.name ?? "")",
schemaVersion: 1,
deleteRealmIfMigrationNeeded: true,
objectTypes: [P2PDeal.self, P2PRating.self]
)
// swiftlint:disable force_try
return try! Realm(configuration: config)
}.scope(.userSession)
register { P2PMyDealsService() }.scope(.application)
register { resolve(Realm.self, name: .realmDeals).objects(P2PDeal.self) }.scope(.unique)
register(Realm.self, name: .realmP2PLists) {
var config = Realm.Configuration(
schemaVersion: 1,
deleteRealmIfMigrationNeeded: true,
objectTypes: [P2PCountry.self,
P2PCity.self,
P2PBank.self,
P2PBlockchain.self,
P2PPaymentSystem.self,
P2PCurrency.self])
config.fileURL >>- {
config.fileURL = $0.deletingLastPathComponent().appendingPathComponent("p2pLists.realm")
}
// swiftlint:disable force_try
return try! Realm(configuration: config)
}.scope(.application)
register { P2PListsService() }.scope(.application)
register { resolve(Realm.self, name: .realmP2PLists).objects(P2PCountry.self) }.scope(.unique)
register { resolve(Realm.self, name: .realmP2PLists).objects(P2PCity.self) }.scope(.unique)
register { resolve(Realm.self, name: .realmP2PLists).objects(P2PBank.self) }.scope(.unique)
register { resolve(Realm.self, name: .realmP2PLists).objects(P2PBlockchain.self) }.scope(.unique)
register { resolve(Realm.self, name: .realmP2PLists).objects(P2PPaymentSystem.self) }.scope(.unique)
register { resolve(Realm.self, name: .realmP2PLists).objects(P2PCurrency.self) }.scope(.unique)
register { RuntimeConfiguration() }.scope(.application)
}
}