From de7b003aca066d3f644661814b472e08f1121392 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 29 Jul 2022 14:46:09 +0100 Subject: [PATCH] Wrap FileTransfer object --- .../FileTransfer/FileTransfer.swift | 43 +++++++++++++++ .../Functors/FileTransferCloseSend.swift | 22 ++++++++ .../Functors/FileTransferMaxFileSize.swift | 22 ++++++++ .../Functors/FileTransferMaxFileTypeLen.swift | 22 ++++++++ .../Functors/FileTransferMaxFilenameLen.swift | 22 ++++++++ .../Functors/FileTransferMaxPreviewSize.swift | 22 ++++++++ .../Functors/FileTransferReceive.swift | 22 ++++++++ ...sferRegisterReceivedProgressCallback.swift | 33 +++++++++++ ...TransferRegisterSentProgressCallback.swift | 33 +++++++++++ .../Functors/FileTransferSend.swift | 55 +++++++++++++++++++ 10 files changed, 296 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/FileTransfer.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferCloseSend.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileSize.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileTypeLen.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFilenameLen.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxPreviewSize.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferReceive.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterReceivedProgressCallback.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterSentProgressCallback.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferSend.swift diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/FileTransfer.swift b/Sources/ElixxirDAppsSDK/FileTransfer/FileTransfer.swift new file mode 100644 index 00000000..4c83984d --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/FileTransfer.swift @@ -0,0 +1,43 @@ +import Bindings + +public struct FileTransfer { + public var closeSend: FileTransferCloseSend + public var maxFileNameLen: FileTransferMaxFilenameLen + public var maxFileSize: FileTransferMaxFileSize + public var maxFileTypeLen: FileTransferMaxFileTypeLen + public var maxPreviewSize: FileTransferMaxPreviewSize + public var receive: FileTransferReceive + public var registerReceivedProgressCallback: FileTransferRegisterReceivedProgressCallback + public var registerSentProgressCallback: FileTransferRegisterSentProgressCallback + public var send: FileTransferSend +} + +extension FileTransfer { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransfer { + FileTransfer( + closeSend: .live(bindingsFileTransfer), + maxFileNameLen: .live(bindingsFileTransfer), + maxFileSize: .live(bindingsFileTransfer), + maxFileTypeLen: .live(bindingsFileTransfer), + maxPreviewSize: .live(bindingsFileTransfer), + receive: .live(bindingsFileTransfer), + registerReceivedProgressCallback: .live(bindingsFileTransfer), + registerSentProgressCallback: .live(bindingsFileTransfer), + send: .live(bindingsFileTransfer) + ) + } +} + +extension FileTransfer { + public static let unimplemented = FileTransfer( + closeSend: .unimplemented, + maxFileNameLen: .unimplemented, + maxFileSize: .unimplemented, + maxFileTypeLen: .unimplemented, + maxPreviewSize: .unimplemented, + receive: .unimplemented, + registerReceivedProgressCallback: .unimplemented, + registerSentProgressCallback: .unimplemented, + send: .unimplemented + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferCloseSend.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferCloseSend.swift new file mode 100644 index 00000000..e729435f --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferCloseSend.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferCloseSend { + public var run: (Data) throws -> Void + + public func callAsFunction(transferId: Data) throws { + try run(transferId) + } +} + +extension FileTransferCloseSend { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferCloseSend { + FileTransferCloseSend(run: bindingsFileTransfer.closeSend) + } +} + +extension FileTransferCloseSend { + public static let unimplemented = FileTransferCloseSend( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileSize.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileSize.swift new file mode 100644 index 00000000..02aea297 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileSize.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxFileSize { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxFileSize { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxFileSize { + FileTransferMaxFileSize(run: bindingsFileTransfer.maxFileSize) + } +} + +extension FileTransferMaxFileSize { + public static let unimplemented = FileTransferMaxFileSize( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileTypeLen.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileTypeLen.swift new file mode 100644 index 00000000..2d3fe392 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFileTypeLen.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxFileTypeLen { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxFileTypeLen { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxFileTypeLen { + FileTransferMaxFileTypeLen(run: bindingsFileTransfer.maxFileTypeLen) + } +} + +extension FileTransferMaxFileTypeLen { + public static let unimplemented = FileTransferMaxFileTypeLen( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFilenameLen.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFilenameLen.swift new file mode 100644 index 00000000..9db1d198 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxFilenameLen.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxFilenameLen { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxFilenameLen { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxFilenameLen { + FileTransferMaxFilenameLen(run: bindingsFileTransfer.maxFileNameLen) + } +} + +extension FileTransferMaxFilenameLen { + public static let unimplemented = FileTransferMaxFilenameLen( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxPreviewSize.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxPreviewSize.swift new file mode 100644 index 00000000..a21163b2 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferMaxPreviewSize.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferMaxPreviewSize { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FileTransferMaxPreviewSize { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferMaxPreviewSize { + FileTransferMaxPreviewSize(run: bindingsFileTransfer.maxPreviewSize) + } +} + +extension FileTransferMaxPreviewSize { + public static let unimplemented = FileTransferMaxPreviewSize( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferReceive.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferReceive.swift new file mode 100644 index 00000000..bd79c1a5 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferReceive.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferReceive { + public var run: (Data) throws -> Data + + public func callAsFunction(transferId: Data) throws -> Data { + try run(transferId) + } +} + +extension FileTransferReceive { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferReceive { + FileTransferReceive(run: bindingsFileTransfer.receive) + } +} + +extension FileTransferReceive { + public static let unimplemented = FileTransferReceive( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterReceivedProgressCallback.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterReceivedProgressCallback.swift new file mode 100644 index 00000000..b094b3ca --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterReceivedProgressCallback.swift @@ -0,0 +1,33 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferRegisterReceivedProgressCallback { + public var run: (Data, String, FileTransferProgressCallback) throws -> Void + + public func callAsFunction( + transferId: Data, + period: String, + callback: FileTransferProgressCallback + ) throws { + try run(transferId, period, callback) + } +} + +extension FileTransferRegisterReceivedProgressCallback { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) + -> FileTransferRegisterReceivedProgressCallback { + FileTransferRegisterReceivedProgressCallback { transferId, period, callback in + try bindingsFileTransfer.registerReceivedProgressCallback( + transferId, + callback: callback.makeBindingsFileTransferReceiveProgressCallback(), + period: period + ) + } + } +} + +extension FileTransferRegisterReceivedProgressCallback { + public static let unimplemented = FileTransferRegisterReceivedProgressCallback( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterSentProgressCallback.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterSentProgressCallback.swift new file mode 100644 index 00000000..c1cfcbc4 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferRegisterSentProgressCallback.swift @@ -0,0 +1,33 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferRegisterSentProgressCallback { + public var run: (Data, String, FileTransferProgressCallback) throws -> Void + + public func callAsFunction( + transferId: Data, + period: String, + callback: FileTransferProgressCallback + ) throws { + try run(transferId, period, callback) + } +} + +extension FileTransferRegisterSentProgressCallback { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) + -> FileTransferRegisterSentProgressCallback { + FileTransferRegisterSentProgressCallback { transferId, period, callback in + try bindingsFileTransfer.registerSentProgressCallback( + transferId, + callback: callback.makeBindingsFileTransferSentProgressCallback(), + period: period + ) + } + } +} + +extension FileTransferRegisterSentProgressCallback { + public static let unimplemented = FileTransferRegisterSentProgressCallback( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferSend.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferSend.swift new file mode 100644 index 00000000..a23f859f --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FileTransferSend.swift @@ -0,0 +1,55 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FileTransferSend { + public struct Params: Equatable { + public init( + payload: FileSend, + recipientId: Data, + paramsJSON: Data, + retry: Float, + period: String + ) { + self.payload = payload + self.recipientId = recipientId + self.paramsJSON = paramsJSON + self.retry = retry + self.period = period + } + + public var payload: FileSend + public var recipientId: Data + public var paramsJSON: Data + public var retry: Float + public var period: String + } + + public var run: (Params, FileTransferProgressCallback) throws -> Data + + public func callAsFunction( + params: Params, + callback: FileTransferProgressCallback + ) throws -> Data { + try run(params, callback) + } +} + +extension FileTransferSend { + public static func live(_ bindingsFileTransfer: BindingsFileTransfer) -> FileTransferSend { + FileTransferSend { params, callback in + try bindingsFileTransfer.send( + params.payload.encode(), + recipientID: params.recipientId, + retry: params.retry, + callback: callback.makeBindingsFileTransferSentProgressCallback(), + period: params.period + ) + } + } +} + +extension FileTransferSend { + public static let unimplemented = FileTransferSend( + run: XCTUnimplemented("\(Self.self)") + ) +} -- GitLab