Skip to content

Commit 5dc4738

Browse files
authored
Move headers from URLSession level to request level (#764)
2 parents 550af6f + 7a1fc7c commit 5dc4738

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

Sources/Gravatar/Network/Services/URLSessionHTTPClient.swift

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,11 @@ struct URLSessionHTTPClient: HTTPClient {
1111
private let urlSession: URLSessionProtocol
1212

1313
init(urlSession: URLSessionProtocol? = nil) {
14-
let configuration = URLSessionConfiguration.default
15-
configuration.httpAdditionalHeaders = [
16-
"Accept": "application/json",
17-
"X-Platform": "ios",
18-
"X-SDK-Version": BundleInfo.sdkVersion ?? "",
19-
"X-Source": BundleInfo.appName ?? "",
20-
]
21-
self.urlSession = urlSession ?? URLSession(configuration: configuration)
14+
self.urlSession = urlSession ?? URLSession(configuration: URLSessionConfiguration.default)
2215
}
2316

2417
func data(with request: URLRequest) async throws -> (Data, HTTPURLResponse) {
18+
let request = request.withHeaders()
2519
let result: (data: Data, response: URLResponse)
2620
do {
2721
result = try await urlSession.data(for: request)
@@ -33,6 +27,7 @@ struct URLSessionHTTPClient: HTTPClient {
3327
}
3428

3529
func uploadData(with request: URLRequest, data: Data) async throws -> (Data, HTTPURLResponse) {
30+
let request = request.withHeaders()
3631
let result: (data: Data, response: URLResponse)
3732
do {
3833
result = try await urlSession.upload(for: request, from: data)
@@ -49,6 +44,15 @@ extension URLRequest {
4944
requestCopy.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
5045
return requestCopy
5146
}
47+
48+
func withHeaders() -> URLRequest {
49+
var request = self
50+
request.addValue("application/json", forHTTPHeaderField: "Accept")
51+
request.addValue("ios", forHTTPHeaderField: "X-Platform")
52+
request.addValue(BundleInfo.sdkVersion ?? "", forHTTPHeaderField: "X-SDK-Version")
53+
request.addValue(BundleInfo.appName ?? "", forHTTPHeaderField: "X-Source")
54+
return request
55+
}
5256
}
5357

5458
private func validatedHTTPResponse(_ response: URLResponse, data: Data) throws -> HTTPURLResponse {

0 commit comments

Comments
 (0)