Select Git revision
MessengerEnvironment.swift
MessengerResumeBackup.swift 1023 B
import Bindings
import XCTestDynamicOverlay
public struct MessengerResumeBackup {
public enum Error: Swift.Error, Equatable {
case isRunning
case notConnected
case notLoggedIn
}
public var run: () throws -> Void
public func callAsFunction() throws {
try run()
}
}
extension MessengerResumeBackup {
public static func live(_ env: MessengerEnvironment) -> MessengerResumeBackup {
MessengerResumeBackup {
guard env.backup()?.isRunning() != true else {
throw Error.isRunning
}
guard let e2e = env.e2e() else {
throw Error.notConnected
}
guard let ud = env.ud() else {
throw Error.notLoggedIn
}
let backup = try env.resumeBackup(
e2eId: e2e.getId(),
udId: ud.getId(),
callback: env.backupCallbacks.registered()
)
env.backup.set(backup)
}
}
}
extension MessengerResumeBackup {
public static let unimplemented = MessengerResumeBackup(
run: XCTUnimplemented("\(Self.self)")
)
}