Skip to content
Snippets Groups Projects
MessengerConnect.swift 825 B
Newer Older
import XXClient
import XCTestDynamicOverlay

Dariusz Rybicki's avatar
Dariusz Rybicki committed
public struct MessengerConnect {
  public enum Error: Swift.Error, Equatable {
    case notLoaded
  }

  public var run: () throws -> Void

  public func callAsFunction() throws {
    try run()
  }
}

Dariusz Rybicki's avatar
Dariusz Rybicki committed
extension MessengerConnect {
  public static func live(_ env: MessengerEnvironment) -> MessengerConnect {
    MessengerConnect {
Dariusz Rybicki's avatar
Dariusz Rybicki committed
      guard let cMix = env.cMix() else {
        throw Error.notLoaded
      }
Dariusz Rybicki's avatar
Dariusz Rybicki committed
      env.e2e.set(try env.login(
        cMixId: cMix.getId(),
        authCallbacks: env.authCallbacks.registered(),
        identity: try cMix.makeLegacyReceptionIdentity(),
        e2eParamsJSON: env.getE2EParams()
Dariusz Rybicki's avatar
Dariusz Rybicki committed
extension MessengerConnect {
  public static let unimplemented = MessengerConnect(
    run: XCTUnimplemented("\(Self.self)")