diff --git a/Sources/XXClient/Functions/InitFileTransfer.swift b/Sources/XXClient/Functions/InitFileTransfer.swift index e232ef746ee5c4fcae42afe14a22e715e4a84687..f56b5680e030aeec708bcfee62e5cd38eaa78d72 100644 --- a/Sources/XXClient/Functions/InitFileTransfer.swift +++ b/Sources/XXClient/Functions/InitFileTransfer.swift @@ -2,28 +2,40 @@ import Bindings import XCTestDynamicOverlay public struct InitFileTransfer { - public var run: (Int, Data, Data, ReceiveFileCallback) throws -> FileTransfer + public struct Params: Equatable { + public init( + e2eId: Int, + e2eFileTransferParamsJSON: Data = GetE2EFileTransferParams.liveDefault(), + fileTransferParamsJSON: Data = GetFileTransferParams.liveDefault() + ) { + self.e2eId = e2eId + self.e2eFileTransferParamsJSON = e2eFileTransferParamsJSON + self.fileTransferParamsJSON = fileTransferParamsJSON + } + + public var e2eId: Int + public var e2eFileTransferParamsJSON: Data = GetE2EFileTransferParams.liveDefault() + public var fileTransferParamsJSON: Data = GetFileTransferParams.liveDefault() + } + + public var run: (Params, ReceiveFileCallback) throws -> FileTransfer public func callAsFunction( - e2eId: Int, - e2eFileTransferParamsJSON: Data = GetE2EFileTransferParams.liveDefault(), - fileTransferParamsJSON: Data = GetFileTransferParams.liveDefault(), + params: Params, callback: ReceiveFileCallback ) throws -> FileTransfer { - try run(e2eId, e2eFileTransferParamsJSON, fileTransferParamsJSON, callback) + try run(params, callback) } } extension InitFileTransfer { - public static let live = InitFileTransfer { - e2eId, e2eFileTransferParamsJSON, fileTransferParamsJSON, callback in - + public static let live = InitFileTransfer { params, callback in var error: NSError? let bindingsFileTransfer = BindingsInitFileTransfer( - e2eId, + params.e2eId, callback.makeBindingsReceiveFileCallback(), - e2eFileTransferParamsJSON, - fileTransferParamsJSON, + params.e2eFileTransferParamsJSON, + params.fileTransferParamsJSON, &error ) if let error = error {