@@ -42,19 +42,12 @@ public protocol NetworkService: Sendable {
4242 let networkService: NetworkService = //
4343 let resource: Resource<String> = //
4444
45- networkService.request(queue: .main, resource: resource, onCompletionWithResponse: { htmlText, response in
46- print(htmlText, response)
47- }, onError: { error in
48- // Handle errors
49- })
45+ let result = await networkService.requestResultWithResponse(for: resource)
5046 ```
5147
52- - parameter queue: The `DispatchQueue` to execute the completion and error block on.
5348 - parameter resource: The resource you want to fetch.
54- - parameter onCompletionWithResponse: Callback which gets called when fetching and transforming into model succeeds.
55- - parameter onError: Callback which gets called when fetching or transforming fails.
56-
57- - returns: a running network task
49+
50+ - returns: a result containing either the success or a network error
5851 */
5952 @discardableResult
6053 func requestResultWithResponse< Success> ( for resource: Resource < Success , NetworkError > ) async -> Result < ( Success , HTTPURLResponse ) , NetworkError >
@@ -72,19 +65,13 @@ public extension NetworkService {
7265 ```swift
7366 let networkService: NetworkService = //
7467 let resource: Resource<String> = //
75-
76- networkService.request(resource, onCompletionWithResponse: { htmlText, httpResponse in
77- print(htmlText, httpResponse)
78- }, onError: { error in
79- // Handle errors
80- })
68+
69+ let result = await networkService.requestResult(for: resource)
8170 ```
82-
71+
8372 - parameter resource: The resource you want to fetch.
84- - parameter onCompletion: Callback which gets called when fetching and transforming into model succeeds.
85- - parameter onError: Callback which gets called when fetching or transforming fails.
86-
87- - returns: a running network task
73+
74+ - returns: a result containing either the success or a network error
8875 */
8976 @discardableResult
9077 func requestResult< Success> ( for resource: Resource < Success , NetworkError > ) async -> Result < Success , NetworkError > {
@@ -102,26 +89,20 @@ public extension NetworkService {
10289 let networkService: NetworkService = //
10390 let resource: Resource<String> = //
10491
105- networkService.request(resource, onCompletionWithResponse: { htmlText, httpResponse in
106- print(htmlText, httpResponse)
107- }, onError: { error in
108- // Handle errors
109- })
92+ let result = await networkService.request(resource)
11093 ```
11194
11295 - parameter resource: The resource you want to fetch.
113- - parameter onCompletion: Callback which gets called when fetching and transforming into model succeeds.
114- - parameter onError: Callback which gets called when fetching or transforming fails.
11596
116- - returns: a running network task
97+ - returns: a result containing either the success or a network error
11798 */
11899 @discardableResult
119- func request< Success> ( _ resource: Resource < Success , NetworkError > ) async throws -> Success {
100+ func request< Success> ( _ resource: Resource < Success , NetworkError > ) async throws ( NetworkError ) -> Success {
120101 return try await requestResultWithResponse ( for: resource) . get ( ) . 0
121102 }
122103
123104 @discardableResult
124- func requestWithResponse< Success> ( for resource: Resource < Success , NetworkError > ) async throws -> ( Success , HTTPURLResponse ) {
105+ func requestWithResponse< Success> ( for resource: Resource < Success , NetworkError > ) async throws ( NetworkError ) -> ( Success , HTTPURLResponse ) {
125106 return try await requestResultWithResponse ( for: resource) . get ( )
126107 }
127108}
0 commit comments