From f9adff5bd7ec553f290635053f81cce9f8c8aec8 Mon Sep 17 00:00:00 2001 From: llghdud921 Date: Tue, 26 Jul 2022 01:02:57 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=8B=A4=ED=8C=A8=20=EC=8B=9C=20message=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=20#82=20-=20=EC=A4=91=EB=B3=B5=20=ED=98=B8=EC=B6=9C=20?= =?UTF-8?q?=EB=B0=A9=EC=A7=80=20throttle=20=EB=B0=A9=EC=8B=9D=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EC=97=AC=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Weekand/Weekand/Networking/Error/SignInError.swift | 7 +++++-- .../SignIn/ViewModel/PasswordFindViewModel.swift | 2 +- .../SignScene/SignIn/ViewModel/SignInViewModel.swift | 10 +++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Weekand/Weekand/Networking/Error/SignInError.swift b/Weekand/Weekand/Networking/Error/SignInError.swift index e3c1c476..6664cd7a 100644 --- a/Weekand/Weekand/Networking/Error/SignInError.swift +++ b/Weekand/Weekand/Networking/Error/SignInError.swift @@ -8,12 +8,15 @@ import Foundation enum SignInError { - case noExistUser + case notFoundUser + case notMatchIdPassword var serverDescription: String { switch self { - case .noExistUser: + case .notFoundUser: return "존재하지 않는 유저입니다." + case .notMatchIdPassword: + return "이메일, 비밀번호가 일치하지 않습니다." } } } diff --git a/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/PasswordFindViewModel.swift b/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/PasswordFindViewModel.swift index aaee73e8..82eff701 100644 --- a/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/PasswordFindViewModel.swift +++ b/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/PasswordFindViewModel.swift @@ -82,7 +82,7 @@ extension PasswordFindViewModel { informText: "임시비밀번호가 발급되었습니다.", dismissParentCoordinator: true) }, onFailure: { error in - if error.localizedDescription == SignInError.noExistUser.serverDescription { + if error.localizedDescription == SignInError.notFoundUser.serverDescription { self.coordinator?.showToastMessage(text: "가입되지 않은 이메일입니다") } else { self.coordinator?.showToastMessage(text: "네트워크 요청에 실패하였습니다") diff --git a/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/SignInViewModel.swift b/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/SignInViewModel.swift index d92249a2..07c80b92 100644 --- a/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/SignInViewModel.swift +++ b/Weekand/Weekand/Presentation/SignScene/SignIn/ViewModel/SignInViewModel.swift @@ -56,7 +56,7 @@ class SignInViewModel: ViewModelType { input.nextButtonDidTapEvent .withLatestFrom(isCheckEmailPassword) - .distinctUntilChanged { $0 == $1 } + .throttle(.seconds(4), latest: false, scheduler: MainScheduler.instance) .subscribe(onNext: { [weak self] email, password in self?.login(email: email, password: password) }).disposed(by: disposeBag) @@ -83,8 +83,12 @@ extension SignInViewModel { self.signInUseCase.login(email: emailText, password: passwordText).subscribe(onSuccess: { tokenData in ToeknManager.shared.createTokens(accessToken: tokenData.accessToken, refreshToken: tokenData.refreshToken) self.userID() - }, onFailure: { _ in - self.coordinator?.showToastMessage(text: "네트워크 요청에 실패하였습니다") + }, onFailure: { error in + if error.localizedDescription == SignInError.notMatchIdPassword.serverDescription { + self.coordinator?.showToastMessage(text: "이메일·비밀번호가 일치하지 않습니다.") + } else { + self.coordinator?.showToastMessage(text: "네트워크 요청에 실패하였습니다") + } }, onDisposed: nil) .disposed(by: disposeBag) }