Skip to content

Commit 4884805

Browse files
committed
Add new post/put fileWithRequest APIs
1 parent df87de2 commit 4884805

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Sources/ServiceStack/JsonServiceClient.swift

+30
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public protocol ServiceClient {
5151
func send<T: Codable>(intoResponse: T, request: NSMutableURLRequest) throws -> T
5252
func sendAsync<T: Codable>(intoResponse: T, request: NSMutableURLRequest) async throws -> T
5353

54+
func postFileWithRequest<T: IReturn & Codable>(request:T, file:UploadFile) throws -> T.Return
55+
func postFileWithRequestAsync<T: IReturn & Codable>(request:T, file:UploadFile) async throws -> T.Return
5456
func postFileWithRequest<T: IReturn>(_ relativeUrl: String, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) throws -> T.Return
5557
func postFileWithRequestAsync<T: IReturn>(_ relativeUrl: String, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) async throws -> T.Return
5658
func postFileWithRequest<T: IReturn>(url:URL, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) throws -> T.Return
@@ -59,6 +61,9 @@ public protocol ServiceClient {
5961
func postFilesWithRequestAsync<T: IReturn & Codable>(request:T, files:[UploadFile]) async throws -> T.Return
6062
func postFilesWithRequest<T: IReturn>(url:URL, request:T, files:[UploadFile]) throws -> T.Return
6163
func postFilesWithRequestAsync<T: IReturn>(url:URL, request:T, files:[UploadFile]) async throws -> T.Return
64+
65+
func putFileWithRequest<T: IReturn & Codable>(request:T, file:UploadFile) throws -> T.Return
66+
func putFileWithRequestAsync<T: IReturn & Codable>(request:T, file:UploadFile) async throws -> T.Return
6267
func putFileWithRequest<T: IReturn>(_ relativeUrl: String, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) throws -> T.Return
6368
func putFileWithRequestAsync<T: IReturn>(_ relativeUrl: String, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) async throws -> T.Return
6469
func putFileWithRequest<T: IReturn>(url:URL, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) throws -> T.Return
@@ -67,6 +72,7 @@ public protocol ServiceClient {
6772
func putFilesWithRequestAsync<T: IReturn & Codable>(request:T, files:[UploadFile]) async throws -> T.Return
6873
func putFilesWithRequest<T: IReturn>(url:URL, request:T, files:[UploadFile]) throws -> T.Return
6974
func putFilesWithRequestAsync<T: IReturn>(url:URL, request:T, files:[UploadFile]) async throws -> T.Return
75+
7076
func sendFileWithRequest<T: IReturn>(_ req:inout URLRequest, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) throws -> T.Return
7177
func sendFileWithRequestAsync<T: IReturn>(_ req:inout URLRequest, request:T, fileName:String, data:Data, mimeType:String?, fieldName:String?) async throws -> T.Return
7278
func sendFilesWithRequest<T: IReturn>(_ req:inout URLRequest, request:T, files:[UploadFile]) throws -> T.Return
@@ -768,6 +774,18 @@ open class JsonServiceClient : NSObject, @unchecked Sendable, ServiceClient, IHa
768774
return try await postFileWithRequestAsync(url:toURL(resolveUrl(relativeUrl)), request: request, fileName: fileName, data: data, mimeType: mimeType, fieldName: fieldName)
769775
}
770776

777+
open func postFileWithRequest<T: IReturn & Codable>(request:T, file:UploadFile) throws -> T.Return {
778+
var req = URLRequest(url: createUrl(dto:request))
779+
req.httpMethod = HttpMethods.Post
780+
return try sendFilesWithRequest(&req, request: request, files:[file])
781+
}
782+
783+
open func postFileWithRequestAsync<T: IReturn & Codable>(request:T, file:UploadFile) async throws -> T.Return {
784+
var req = URLRequest(url: createUrl(dto:request))
785+
req.httpMethod = HttpMethods.Post
786+
return try await sendFilesWithRequestAsync(&req, request: request, files:[file])
787+
}
788+
771789
open func postFileWithRequest<T: IReturn>(url:URL, request:T, fileName:String, data:Data, mimeType:String? = nil, fieldName:String? = "file") throws -> T.Return {
772790
var req = URLRequest(url: url)
773791
req.httpMethod = HttpMethods.Post
@@ -812,6 +830,18 @@ open class JsonServiceClient : NSObject, @unchecked Sendable, ServiceClient, IHa
812830
return try await putFileWithRequestAsync(url:toURL(resolveUrl(relativeUrl)), request: request, fileName: fileName, data: data, mimeType: mimeType, fieldName: fieldName)
813831
}
814832

833+
open func putFileWithRequest<T: IReturn & Codable>(request:T, file:UploadFile) throws -> T.Return {
834+
var req = URLRequest(url: createUrl(dto:request))
835+
req.httpMethod = HttpMethods.Put
836+
return try sendFilesWithRequest(&req, request: request, files:[file])
837+
}
838+
839+
open func putFileWithRequestAsync<T: IReturn & Codable>(request:T, file:UploadFile) async throws -> T.Return {
840+
var req = URLRequest(url: createUrl(dto:request))
841+
req.httpMethod = HttpMethods.Put
842+
return try await sendFilesWithRequestAsync(&req, request: request, files:[file])
843+
}
844+
815845
open func putFileWithRequest<T: IReturn>(url:URL, request:T, fileName:String, data:Data, mimeType:String? = nil, fieldName:String? = "file") throws -> T.Return {
816846
var req = URLRequest(url: url)
817847
req.httpMethod = HttpMethods.Put

0 commit comments

Comments
 (0)