Skip to content
Snippets Groups Projects
Select Git revision
  • 11dcabbc97d70e88d566f937dd7888a339f58000
  • release default protected
  • 11-22-implement-kv-interface-defined-in-collectiveversionedkvgo
  • hotfix/TestHostPool_UpdateNdf_AddFilter
  • XX-4719/announcementChannels
  • xx-4717/logLevel
  • jonah/noob-channel
  • master protected
  • XX-4707/tagDiskJson
  • xx-4698/notification-retry
  • hotfix/notifylockup
  • syncNodes
  • hotfix/localCB
  • XX-4677/NewChanManagerMobile
  • XX-4689/DmSync
  • duplicatePrefix
  • XX-4601/HavenInvites
  • finalizedUICallbacks
  • XX-4673/AdminKeySync
  • debugNotifID
  • anne/test
  • v4.7.5
  • v4.7.4
  • v4.7.3
  • v4.7.2
  • v4.7.1
  • v4.6.3
  • v4.6.1
  • v4.5.0
  • v4.4.4
  • v4.3.11
  • v4.3.8
  • v4.3.7
  • v4.3.6
  • v4.3.5
  • v4.2.0
  • v4.3.0
  • v4.3.4
  • v4.3.3
  • v4.3.2
  • v4.3.1
41 results

utils_test.go

Blame
  • XXNetwork.swift 3.16 KiB
    import Shared
    import XXLogger
    import Keychain
    import Foundation
    import DependencyInjection
    
    public enum NetworkEnvironment {
        case mainnet
    }
    
    public protocol XXNetworking {
        var hasClient: Bool { get }
    
        func writeLogs()
        func purgeFiles()
        func updateErrors()
        func newClient(ndf: String) throws -> Client
        func loadClient(with: Data) throws -> Client
        func updateNDF(_: @escaping (Result<String, Error>) -> Void)
    }
    
    public struct XXNetwork<B: BindingsInterface> {
        // MARK: Injected
    
        @Dependency private var logger: XXLogger
        @Dependency private var keychain: KeychainHandling
    
        // MARK: Lifecycle
    
        public init() {}
    }
    
    extension XXNetwork: XXNetworking {
        public var hasClient: Bool {
            guard let files = FileManager.xxContents else { return false }
            return files.count > 0
        }
    
        public func writeLogs() {
            B.listenLogs()
        }
    
        public func updateErrors() {
            B.updateErrors()
        }
    
        public func updateNDF(_ completion: @escaping (Result<String, Error>) -> Void) {
            B.updateNDF(for: .mainnet) {
                switch $0 {
                case .success(let data):
                    guard let ndfData = data, let ndf = String(data: ndfData, encoding: .utf8) else {
                        completion(.failure(NSError.create("NDF is empty (?)")))
                        return
                    }
    
                    completion(.success(ndf))
                case .failure(let error):
                    completion(.failure(error))
                }
            }
        }
    
        public func purgeFiles() {
            FileManager.xxCleanup()
        }
    
        public func newClient(ndf: String) throws -> Client {
            var password: Data!
    
            if hasClient == false {