Files
raspberry/iOS/Wallet/Sources/AppDelegate+Injection.swift
T

86 lines
3.8 KiB
Swift

//
// AppDelegate+Injection.swift
// Wallet
//
// Created by Saveliy Stavitsky on 8/4/21.
// Copyright © 2021 AM. All rights reserved.
//
import Resolver
import RealmSwift
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
register(Realm.self, name: .realmInMemory) {
let config = Realm.Configuration(
inMemoryIdentifier: "realmInMemory_\(Accounts().current?.username ?? "")",
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?.username ?? "")",
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!
.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)
}
}