diff --git a/YELLO-iOS/YELLO-iOS/Network/Base/APIRequestLoader.swift b/YELLO-iOS/YELLO-iOS/Network/Base/APIRequestLoader.swift index 8ffdb5bb..7c8ec973 100644 --- a/YELLO-iOS/YELLO-iOS/Network/Base/APIRequestLoader.swift +++ b/YELLO-iOS/YELLO-iOS/Network/Base/APIRequestLoader.swift @@ -55,9 +55,9 @@ class APIRequestLoader { private func judgeStatus(by statusCode: Int, _ data: Data, type: M.Type) -> NetworkResult { switch statusCode { - case 200...299: return isValidData(data: data, type: M.self) - case 400, 402...499: return isValidData(data: data, type: M.self) - case 500: return .serverErr + case 200...299, 403, 404: return isValidData(data: data, type: M.self) + case 400, 402, 405...499: return .requestErr(statusCode: statusCode) + case 500: return .serverErr(statusCode: statusCode) case 401: return .failure default: return .networkErr } diff --git a/YELLO-iOS/YELLO-iOS/Network/Base/NetworkResult.swift b/YELLO-iOS/YELLO-iOS/Network/Base/NetworkResult.swift index f6f989d7..75595081 100644 --- a/YELLO-iOS/YELLO-iOS/Network/Base/NetworkResult.swift +++ b/YELLO-iOS/YELLO-iOS/Network/Base/NetworkResult.swift @@ -9,9 +9,9 @@ import Foundation enum NetworkResult { case success(T) // 서버 통신 성공 - case requestErr(T) // 요청에러 발생 + case requestErr(statusCode: Int) // 요청에러 발생 case pathErr // 경로 에러 - case serverErr // 서버 내부 에러 + case serverErr(statusCode: Int) // 서버 내부 에러 case networkErr // 네트워크 연결 실패 case failure // 실패 } diff --git a/YELLO-iOS/YELLO-iOS/Presentation/Onboarding/ViewController/RecommendIdViewController.swift b/YELLO-iOS/YELLO-iOS/Presentation/Onboarding/ViewController/RecommendIdViewController.swift index 64d02943..8b936f9a 100644 --- a/YELLO-iOS/YELLO-iOS/Presentation/Onboarding/ViewController/RecommendIdViewController.swift +++ b/YELLO-iOS/YELLO-iOS/Presentation/Onboarding/ViewController/RecommendIdViewController.swift @@ -169,6 +169,14 @@ class RecommendIdViewController: OnboardingBaseViewController { Amplitude.instance().setUserProperties(userProperties) self.didPostUserInfo = true self.navigationController?.pushViewController(pushViewController, animated: false) + case .requestErr(let statusCode): + self.view.showToast(message: "오류가 발생했습니다. code: \(statusCode)", at: 180.adjusted) + case .serverErr(let statusCode): + self.view.showToast(message: "오류가 발생했습니다. code: \(statusCode)", at: 180.adjusted) + let sceneDelegate = UIApplication.shared.connectedScenes.first?.delegate as! SceneDelegate + kakaoLoginViewController.isFromOnboarding = true + sceneDelegate.window?.rootViewController = UINavigationController(rootViewController: kakaoLoginViewController) + return default: self.isFail = true self.view.showToast(message: "오류가 발생했습니다. 잠시후 다시 시도해주세요.")