From f840d6958a3691d2100f0fc79a73b565c37cac68 Mon Sep 17 00:00:00 2001 From: Artem Redkin Date: Thu, 26 Mar 2020 15:38:15 +0000 Subject: [PATCH 1/3] add version to response --- Sources/AsyncHTTPClient/HTTPHandler.swift | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Sources/AsyncHTTPClient/HTTPHandler.swift b/Sources/AsyncHTTPClient/HTTPHandler.swift index 04c8cb7af..8a6de6993 100644 --- a/Sources/AsyncHTTPClient/HTTPHandler.swift +++ b/Sources/AsyncHTTPClient/HTTPHandler.swift @@ -225,6 +225,8 @@ extension HTTPClient { public var host: String /// Response HTTP status. public var status: HTTPResponseStatus + /// Response HTTP version. + public var version: HTTPVersion /// Reponse HTTP headers. public var headers: HTTPHeaders /// Response body. @@ -237,11 +239,12 @@ extension HTTPClient { /// - status: Response HTTP status. /// - headers: Reponse HTTP headers. /// - body: Response body. - public init(host: String, status: HTTPResponseStatus, headers: HTTPHeaders, body: ByteBuffer?) { + public init(host: String, status: HTTPResponseStatus, version: HTTPVersion, headers: HTTPHeaders, body: ByteBuffer?) { self.host = host self.status = status self.headers = headers self.body = body + self.version = version } } @@ -342,9 +345,9 @@ public class ResponseAccumulator: HTTPClientResponseDelegate { case .idle: preconditionFailure("no head received before end") case .head(let head): - return Response(host: self.request.host, status: head.status, headers: head.headers, body: nil) + return Response(host: self.request.host, status: head.status, version: head.version, headers: head.headers, body: nil) case .body(let head, let body): - return Response(host: self.request.host, status: head.status, headers: head.headers, body: body) + return Response(host: self.request.host, status: head.status, version: head.version, headers: head.headers, body: body) case .end: preconditionFailure("request already processed") case .error(let error): From 1b5d99f20144f82df1d044668ec272a338ae277e Mon Sep 17 00:00:00 2001 From: Artem Redkin Date: Thu, 26 Mar 2020 16:08:56 +0000 Subject: [PATCH 2/3] fix API breakage by deprecating old init --- Sources/AsyncHTTPClient/HTTPHandler.swift | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Sources/AsyncHTTPClient/HTTPHandler.swift b/Sources/AsyncHTTPClient/HTTPHandler.swift index 8a6de6993..f61034cad 100644 --- a/Sources/AsyncHTTPClient/HTTPHandler.swift +++ b/Sources/AsyncHTTPClient/HTTPHandler.swift @@ -239,12 +239,29 @@ extension HTTPClient { /// - status: Response HTTP status. /// - headers: Reponse HTTP headers. /// - body: Response body. - public init(host: String, status: HTTPResponseStatus, version: HTTPVersion, headers: HTTPHeaders, body: ByteBuffer?) { + @available(*, deprecated, message: "please use init(host:status:version:headers:body:) instead") + public init(host: String, status: HTTPResponseStatus, headers: HTTPHeaders, body: ByteBuffer?) { self.host = host self.status = status + self.version = HTTPVersion(major: 1, minor: 1) self.headers = headers self.body = body + } + + /// Create HTTP `Response`. + /// + /// - parameters: + /// - host: Remote host of the request. + /// - status: Response HTTP status. + /// - version: Response HTTP version. + /// - headers: Reponse HTTP headers. + /// - body: Response body. + public init(host: String, status: HTTPResponseStatus, version: HTTPVersion, headers: HTTPHeaders, body: ByteBuffer?) { + self.host = host + self.status = status self.version = version + self.headers = headers + self.body = body } } From f6d01e5d6ed949afc7b098097a4f19a1d3df837a Mon Sep 17 00:00:00 2001 From: Artem Redkin Date: Thu, 26 Mar 2020 16:17:41 +0000 Subject: [PATCH 3/3] review fix: use renamed instead of message --- Sources/AsyncHTTPClient/HTTPHandler.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/AsyncHTTPClient/HTTPHandler.swift b/Sources/AsyncHTTPClient/HTTPHandler.swift index f61034cad..dccdf76a5 100644 --- a/Sources/AsyncHTTPClient/HTTPHandler.swift +++ b/Sources/AsyncHTTPClient/HTTPHandler.swift @@ -239,7 +239,7 @@ extension HTTPClient { /// - status: Response HTTP status. /// - headers: Reponse HTTP headers. /// - body: Response body. - @available(*, deprecated, message: "please use init(host:status:version:headers:body:) instead") + @available(*, deprecated, renamed: "init(host:status:version:headers:body:)") public init(host: String, status: HTTPResponseStatus, headers: HTTPHeaders, body: ByteBuffer?) { self.host = host self.status = status