@@ -6,7 +6,7 @@ import FoundationNetworking
66/// A client to consume a REST API. Uses JSON to encode/decode body data.
77@available ( iOS 16 , macOS 13 , tvOS 16 , watchOS 9 , * )
88public final class RESTClient : Sendable {
9- public enum RESTClientError : Error , LocalizedError , Sendable {
9+ public enum APIError : Error , LocalizedError , Sendable {
1010 public typealias Context = String
1111
1212 case responsePluginFailed( Error , Context ? )
@@ -149,7 +149,7 @@ public final class RESTClient: Sendable {
149149 extraHeaders: [ String : String ] = [ : ] ,
150150 extraQueryItems: [ URLQueryItem ] = [ ] ,
151151 errorContext: String ? = nil
152- ) async throws ( RESTClientError ) {
152+ ) async throws ( APIError ) {
153153 _ = try await self . fetchData ( method: method, path: path, body: body, extraHeaders: extraHeaders, extraQueryItems: extraQueryItems)
154154 }
155155
@@ -160,7 +160,7 @@ public final class RESTClient: Sendable {
160160 extraHeaders: [ String : String ] = [ : ] ,
161161 extraQueryItems: [ URLQueryItem ] = [ ] ,
162162 errorContext: String ? = nil
163- ) async throws ( RESTClientError ) -> ResponseBodyType {
163+ ) async throws ( APIError ) -> ResponseBodyType {
164164 let responseData = try await self . fetchData ( method: method, path: path, body: body, extraHeaders: extraHeaders, extraQueryItems: extraQueryItems)
165165
166166 do {
@@ -177,7 +177,7 @@ public final class RESTClient: Sendable {
177177 extraHeaders: [ String : String ] = [ : ] ,
178178 extraQueryItems: [ URLQueryItem ] = [ ] ,
179179 errorContext: String ? = nil
180- ) async throws ( RESTClientError ) -> Data {
180+ ) async throws ( APIError ) -> Data {
181181 let url = self . baseURL
182182 . appending ( path: path)
183183 . appending ( queryItems: self . baseQueryItems + extraQueryItems)
@@ -193,7 +193,7 @@ public final class RESTClient: Sendable {
193193 do {
194194 request. httpBody = try body. httpData ( jsonEncoder: self . jsonEncoder)
195195 } catch {
196- throw RESTClientError . failedToEncodeBody ( error, self . errorContext ( requestContext: errorContext) )
196+ throw APIError . failedToEncodeBody ( error, self . errorContext ( requestContext: errorContext) )
197197 }
198198
199199 request. setValue ( body. contentType, forHTTPHeaderField: " Content-Type " )
@@ -215,22 +215,22 @@ public final class RESTClient: Sendable {
215215 return context
216216 }
217217
218- private func performRequest( _ request: URLRequest , errorContext: String ? ) async throws ( RESTClientError ) -> ( Data , URLResponse ) {
218+ private func performRequest( _ request: URLRequest , errorContext: String ? ) async throws ( APIError ) -> ( Data , URLResponse ) {
219219 self . logRequestIfDebug ( request)
220220
221221 let data : Data
222222 let response : URLResponse
223223 do {
224224 ( data, response) = try await URLSession . shared. data ( for: request)
225225 } catch {
226- throw RESTClientError . failedToLoadData ( error, self . errorContext ( requestContext: errorContext) )
226+ throw APIError . failedToLoadData ( error, self . errorContext ( requestContext: errorContext) )
227227 }
228228
229229 self . logResponseIfDebug ( response, data: data)
230230 return ( data, response)
231231 }
232232
233- private func handle( data: Data , response: URLResponse , for request: URLRequest , errorContext: String ? , attempt: Int = 1 ) async throws ( RESTClientError ) -> Data {
233+ private func handle( data: Data , response: URLResponse , for request: URLRequest , errorContext: String ? , attempt: Int = 1 ) async throws ( APIError ) -> Data {
234234 guard var httpResponse = response as? HTTPURLResponse else {
235235 throw . unexpectedResponseType( response, self . errorContext ( requestContext: errorContext) )
236236 }
@@ -240,7 +240,7 @@ public final class RESTClient: Sendable {
240240 do {
241241 try responsePlugin. apply ( to: & httpResponse, data: & data)
242242 } catch {
243- throw RESTClientError . responsePluginFailed ( error, self . errorContext ( requestContext: errorContext) )
243+ throw APIError . responsePluginFailed ( error, self . errorContext ( requestContext: errorContext) )
244244 }
245245 }
246246
0 commit comments