96 lines
4.0 KiB
Swift
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)
|
|
}
|
|
}
|