Skip to content

Commit a9d0f79

Browse files
committed
Added method to request Data
1 parent 0681b41 commit a9d0f79

File tree

1 file changed

+37
-14
lines changed

1 file changed

+37
-14
lines changed

Sources/Networking/NetworkService/NetworkService.swift

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public protocol NetworkService {
1616
@available(iOS 16, *)
1717
@available(macOS 10.15, *)
1818
func request(endpoint: any RequestableEndpoint) async -> TaskType
19+
@available(iOS 16, *)
20+
@available(macOS 10.15, *)
21+
func request(endpoint: any RequestableEndpoint) async throws -> Data
22+
1923
}
2024

2125
//MARK: Concrete Implementation
@@ -65,24 +69,30 @@ public final class DefaultNetworkService {
6569
@available(iOS 16, *)
6670
private func request(request: URLRequest) async throws -> TaskType {
6771
let task = TaskType {
68-
do {
69-
let (data, response) = try await sessionManagerType.sessionManager.request(request).value
70-
71-
if let response = response as? HTTPURLResponse, !(200...300).contains(response.statusCode) {
72-
let error: NetworkError = .error(statusCode: response.statusCode, data: data)
73-
self.loggerType.logger.log(error: error)
74-
throw error
75-
}
72+
try await self.request(request: request)
73+
}
74+
75+
return task
76+
}
7677

77-
self.loggerType.logger.log(responseData: data, response: response)
78-
return data
79-
} catch {
78+
@available(macOS 10.15, *)
79+
@available(iOS 16, *)
80+
private func request(request: URLRequest) async throws -> Data {
81+
do {
82+
let (data, response) = try await sessionManagerType.sessionManager.request(request).value
83+
84+
if let response = response as? HTTPURLResponse, !(200...300).contains(response.statusCode) {
85+
let error: NetworkError = .error(statusCode: response.statusCode, data: data)
8086
self.loggerType.logger.log(error: error)
81-
throw self.resolve(error: error)
87+
throw error
8288
}
89+
90+
self.loggerType.logger.log(responseData: data, response: response)
91+
return data
92+
} catch {
93+
self.loggerType.logger.log(error: error)
94+
throw self.resolve(error: error)
8395
}
84-
85-
return task
8696
}
8797

8898
private func resolve(error: Error) -> NetworkError {
@@ -118,6 +128,19 @@ extension DefaultNetworkService: NetworkService {
118128
return task
119129
}
120130

131+
@available(macOS 10.15, *)
132+
@available(iOS 16, *)
133+
public func request(endpoint: any RequestableEndpoint) async throws -> Data {
134+
do {
135+
let request = try endpoint.urlRequest(with: networkConfig)
136+
return try await self.request(request: request)
137+
} catch let error as NetworkError {
138+
throw error
139+
} catch {
140+
throw NetworkError.urlGeneration
141+
}
142+
}
143+
121144
public func request(endpoint: any RequestableEndpoint, completion: @escaping CompletionHandler) -> (any CancellableHttpRequest)? {
122145
do {
123146
let request = try endpoint.urlRequest(with: networkConfig)

0 commit comments

Comments
 (0)