Skip to content
Snippets Groups Projects
Select Git revision
  • 569c862eab1601dd674efc96c56525184ff83320
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

InitFileTransfer.swift

Blame
  • InitFileTransfer.swift 1.23 KiB
    import Bindings
    import XCTestDynamicOverlay
    
    public struct InitFileTransfer {
      public var run: (Int, Data, Data, ReceiveFileCallback) throws -> FileTransfer
    
      public func callAsFunction(
        e2eId: Int,
        e2eFileTransferParamsJSON: Data = GetE2EFileTransferParams.liveDefault(),
        fileTransferParamsJSON: Data = GetFileTransferParams.liveDefault(),
        callback: ReceiveFileCallback
      ) throws -> FileTransfer {
        try run(e2eId, e2eFileTransferParamsJSON, fileTransferParamsJSON, callback)
      }
    }
    
    extension InitFileTransfer {
      public static let live = InitFileTransfer {
        e2eId, e2eFileTransferParamsJSON, fileTransferParamsJSON, callback in
    
        var error: NSError?
        let bindingsFileTransfer = BindingsInitFileTransfer(
          e2eId,
          callback.makeBindingsReceiveFileCallback(),
          e2eFileTransferParamsJSON,
          fileTransferParamsJSON,
          &error
        )
        if let error = error {
          throw error
        }
        guard let bindingsFileTransfer = bindingsFileTransfer else {
          fatalError("BindingsInitFileTransfer returned `nil` without providing error")
        }
        return .live(bindingsFileTransfer)
      }
    }
    
    extension InitFileTransfer {
      public static let unimplemented = InitFileTransfer(
        run: XCTUnimplemented("\(Self.self)")
      )
    }