Skip to content

Commit 5a24f29

Browse files
committed
Rename error type to API error to be more generic without being repetitive
1 parent 2628cc0 commit 5a24f29

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

Sources/HandySwift/Types/RESTClient.swift

+9-9
Original file line numberDiff line numberDiff line change
@@ -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, *)
88
public 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

Comments
 (0)