From 8f3c7b062459bdc99d2d518a446e18275fed0bb3 Mon Sep 17 00:00:00 2001 From: David Nadoba Date: Tue, 1 Feb 2022 10:57:33 +0100 Subject: [PATCH] add default logger and timeout API --- .../AsyncAwait/HTTPClient+execute.swift | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/Sources/AsyncHTTPClient/AsyncAwait/HTTPClient+execute.swift b/Sources/AsyncHTTPClient/AsyncAwait/HTTPClient+execute.swift index f2680107a..d8f8d0a5c 100644 --- a/Sources/AsyncHTTPClient/AsyncAwait/HTTPClient+execute.swift +++ b/Sources/AsyncHTTPClient/AsyncAwait/HTTPClient+execute.swift @@ -30,17 +30,41 @@ extension HTTPClient { func execute( _ request: HTTPClientRequest, deadline: NIODeadline, - logger: Logger + logger: Logger? = nil ) async throws -> HTTPClientResponse { try await self.executeAndFollowRedirectsIfNeeded( request, deadline: deadline, - logger: logger, + logger: logger ?? Self.loggingDisabled, redirectState: RedirectState(self.configuration.redirectConfiguration.mode, initialURL: request.url) ) } } +// MARK: Connivence methods + +@available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) +extension HTTPClient { + /// Execute arbitrary HTTP requests. + /// + /// - Parameters: + /// - request: HTTP request to execute. + /// - timeout: time the the request has to complete. + /// - logger: The logger to use for this request. + /// - Returns: The response to the request. Note that the `body` of the response may not yet have been fully received. + func execute( + _ request: HTTPClientRequest, + timeout: TimeAmount, + logger: Logger? = nil + ) async throws -> HTTPClientResponse { + try await self.execute( + request, + deadline: .now() + timeout, + logger: logger + ) + } +} + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) extension HTTPClient { private func executeAndFollowRedirectsIfNeeded(