Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fix] #256 - Mission error 로직 처리 #257

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open

Conversation

jeongdung-eo
Copy link
Member

🫧 작업한 내용

  • mission관련 api 콜 error 로직 처리

🔫 PR Point

  • 문제의 원인
    • failure 케이스에서 completion(nil)을 호출하여, 에러가 발생했을 때도 응답 데이터가 nil로 전달되어 토스트 메시지를 표시하지 못함.
  • 문제 해결 과정
    • 코드를 살펴보니 성공적인 응답을 받았을 때 단순히 상태 코드에 대한 분기 처리만을 수행함
    • completion으로 성공 응답에 대한 reponse를 전달하는 것이 아닌 error가 내려왔을때 reponse를 전달
  • 문제 해결
    • 실패인 경우 completion 클로저를 통해 에러를 받아 토스트 메시지를 표시하고, 성공적인 응답이라면 그에 따른 로직을 처리할 수 있도록 수정

[error 처리 ❌]

case .success(let response):
               do {
                   let response = try response.map(UpdateMissionStatus?.self)
                   completion(response)
               } catch let err {
                   print(err.localizedDescription, 500)
               }
           case .failure(let err):
               print(err.localizedDescription)
               completion(nil)
           }
   }

[error 처리 ⭕️]

case .failure(let err):
                if let response = err.response {
                    do {
                        let errorResponse = try response.map(ErrorResponse.self)
                        print("💎 Server Error 💎: \(errorResponse.message)")
                        completion(errorResponse)
                    } catch {
                        print("💎 Mapping Error 💎: \(error.localizedDescription)")
                        completion(nil)
                    }
                } else {
                    print("💎 Network Error 💎: \(err.localizedDescription)")
                    completion(nil)
                }
            }

📸 스크린샷

다른 날짜 추가 낫투두 수정 낫투두 생성

📮 관련 이슈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Fix] 미션에 대한 error 처리
1 participant