Skip to content

Commit 874b4ed

Browse files
committed
✨[feat]: 특정 케이스 관련 수정
1 parent 58de887 commit 874b4ed

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

Sources/AsyncURLSession/NetworkManger/Provider/AsyncProvider.swift

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,25 @@ public class AsyncProvider<T: TargetType> {
5858

5959
case 500:
6060
Log.error("Internal Server Error (500), attempting to decode response (Retry Count: \(retryCount + 1))")
61-
61+
6262
if retryCount < maxRetryCount {
6363
do {
64-
// 500 에러일 때 데이터를 제네릭 D 타입으로 디코딩 시도
64+
// 500 상태 코드일 때도 데이터를 디코딩 시도
6565
return try decodeErrorResponseData(data: data, decodeTo: D.self)
6666
} catch {
6767
Log.error("Decoding failed for 500 error response, retrying... (Retry Count: \(retryCount + 1))")
6868
return try await executeWithRetry(request: request, decodeTo: type, retryCount: retryCount + 1)
6969
}
7070
} else {
7171
Log.error("Failed after 3 retries for 500 error response")
72-
throw DataError.unhandledStatusCode(httpResponse.statusCode)
72+
73+
// 500 상태 코드에서 실패할 경우에도 ErrorResponse를 처리하려고 시도
74+
if let errorResponse = try? decodeErrorResponseData(data: data, decodeTo: D.self) {
75+
Log.debug("Decoded ErrorResponse with 500 status code")
76+
return errorResponse
77+
} else {
78+
throw DataError.unhandledStatusCode(httpResponse.statusCode)
79+
}
7380
}
7481

7582
default:

0 commit comments

Comments
 (0)