Skip to content

Commit f9ed337

Browse files
authored
Make adaptRequest API async (#24)
1 parent cf14135 commit f9ed337

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

Sources/SimpleHTTP/Interceptor/CompositeInterceptor.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,13 @@ public struct CompositeInterceptor: ExpressibleByArrayLiteral, Sequence {
1515
}
1616

1717
extension CompositeInterceptor: Interceptor {
18-
public func adaptRequest<Output>(_ request: Request<Output>) -> Request<Output> {
19-
reduce(request) { request, interceptor in
20-
interceptor.adaptRequest(request)
18+
public func adaptRequest<Output>(_ request: Request<Output>) async -> Request<Output> {
19+
var request = request
20+
for interceptor in interceptors {
21+
request = await interceptor.adaptRequest(request)
2122
}
23+
24+
return request
2225
}
2326

2427
public func shouldRescueRequest<Output>(_ request: Request<Output>, error: Error) async throws -> Bool {

Sources/SimpleHTTP/Interceptor/Interceptor.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public typealias Interceptor = RequestInterceptor & ResponseInterceptor
66
/// a protocol intercepting a session request
77
public protocol RequestInterceptor {
88
/// Should be called before making the request to provide modifications to `request`
9-
func adaptRequest<Output>(_ request: Request<Output>) -> Request<Output>
9+
func adaptRequest<Output>(_ request: Request<Output>) async -> Request<Output>
1010

1111
/// catch and retry a failed request
1212
/// - Returns: nil if the request should not be retried. Otherwise a publisher that will be executed before

Sources/SimpleHTTP/Session/Session.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public class Session {
6666

6767
extension Session {
6868
private func dataPublisher<Output>(for request: Request<Output>) async throws -> Response<Output> {
69-
let modifiedRequest = config.interceptor.adaptRequest(request)
69+
let modifiedRequest = await config.interceptor.adaptRequest(request)
7070
let urlRequest = try modifiedRequest
7171
.toURLRequest(encoder: config.encoder, relativeTo: baseURL, accepting: config.decoder)
7272

0 commit comments

Comments
 (0)