From 95ef14d1bee671c90da12bac2d5b8848f25ed97b Mon Sep 17 00:00:00 2001 From: InhyeKang Date: Thu, 9 Mar 2023 20:47:40 +0900 Subject: [PATCH] =?UTF-8?q?refactor=20::=20=EC=97=90=EB=9F=AC=20=EB=A9=94?= =?UTF-8?q?=EC=84=B8=EC=A7=80=20=EB=B0=8F=20=ED=94=84=EB=A6=B0=ED=8A=B8=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SignupTerms/SignupTermsViewModel.swift | 2 ++ .../ErrorModule/Sources/DmsError.swift | 5 +++- .../Services/APIKit/Sources/StudentsAPI.swift | 2 ++ .../UseCases/Fake/SigninUseCaseFake.swift | 6 ++-- .../UseCases/Fake/SignupUseCaseFake.swift | 28 +++++++++++++++++++ 5 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 Projects/Services/DataModule/Sources/Students/UseCases/Fake/SignupUseCaseFake.swift diff --git a/Projects/Features/SignupFeature/Sources/SignupTerms/SignupTermsViewModel.swift b/Projects/Features/SignupFeature/Sources/SignupTerms/SignupTermsViewModel.swift index 3c547639..9d81832a 100644 --- a/Projects/Features/SignupFeature/Sources/SignupTerms/SignupTermsViewModel.swift +++ b/Projects/Features/SignupFeature/Sources/SignupTerms/SignupTermsViewModel.swift @@ -38,6 +38,8 @@ final class SignupTermsViewModel: BaseViewModel { ) { [weak self] feature in self?.dmsFeatures = feature self?.isShowingAlert = true + print("thisis") + print(self?.dmsFeatures?.remainService ?? "failed parsing") self?.alertMessage = "회원가입이 완료되었습니다!" } } diff --git a/Projects/Modules/ErrorModule/Sources/DmsError.swift b/Projects/Modules/ErrorModule/Sources/DmsError.swift index eb66a0ea..ada38cbc 100644 --- a/Projects/Modules/ErrorModule/Sources/DmsError.swift +++ b/Projects/Modules/ErrorModule/Sources/DmsError.swift @@ -24,6 +24,7 @@ public enum DmsError: Error { case notFoundAccountID // MARK: - Students + case unAuthorizedEmail case alreadyExistUserBySignup case alreadyExistIDByCheckID case alreadyExistEmailByCheckEmail @@ -86,7 +87,7 @@ extension DmsError: LocalizedError { return "인증 정보를 찾을 수 없습니다." case .diffrentEmailByAccountID: - return "아이디외 이메일과 일치하지 않습니다." + return "아이디와 이메일이 일치하지 않습니다." case .notFoundAccountID: return "존재하지 않는 아이디입니다." @@ -95,6 +96,8 @@ extension DmsError: LocalizedError { return "학생이 등록되지 않았습니다." // MARK: - Students + case .unAuthorizedEmail: + return "이메일이 인증되지 않았습니다." case .alreadyExistUserBySignup: return "이미 회원가입한 학생합니다!" diff --git a/Projects/Services/APIKit/Sources/StudentsAPI.swift b/Projects/Services/APIKit/Sources/StudentsAPI.swift index b01b07f9..0e4a106a 100644 --- a/Projects/Services/APIKit/Sources/StudentsAPI.swift +++ b/Projects/Services/APIKit/Sources/StudentsAPI.swift @@ -127,7 +127,9 @@ extension StudentsAPI: DmsAPI { case .signup: return [ 400: .badRequest, + 401: .unAuthorizedEmail, 409: .alreadyExistUserBySignup, + 429: .tooManyRequest, 500: .internalServerError ] diff --git a/Projects/Services/DataModule/Sources/Auth/UseCases/Fake/SigninUseCaseFake.swift b/Projects/Services/DataModule/Sources/Auth/UseCases/Fake/SigninUseCaseFake.swift index dfffa651..34aaa94c 100644 --- a/Projects/Services/DataModule/Sources/Auth/UseCases/Fake/SigninUseCaseFake.swift +++ b/Projects/Services/DataModule/Sources/Auth/UseCases/Fake/SigninUseCaseFake.swift @@ -10,9 +10,9 @@ public struct SigninUseCaseFake: SigninUseCase { public func execute(req: SigninRequestDTO) -> AnyPublisher { if req.accountID == "baekteun" && req.password == "baekteun" { return Just(DmsFeatures( - mealService: false, - noticeService: false, - pointService: false, + mealService: true, + noticeService: true, + pointService: true, studyRoomService: false, remainService: false )) diff --git a/Projects/Services/DataModule/Sources/Students/UseCases/Fake/SignupUseCaseFake.swift b/Projects/Services/DataModule/Sources/Students/UseCases/Fake/SignupUseCaseFake.swift new file mode 100644 index 00000000..9153db49 --- /dev/null +++ b/Projects/Services/DataModule/Sources/Students/UseCases/Fake/SignupUseCaseFake.swift @@ -0,0 +1,28 @@ +import Combine +import DataMappingModule +import DomainModule +import ErrorModule +import Foundation + +public struct SignupUseCaseFake: SignupUseCase { + public init () {} + + public func execute(req: SignupRequestDTO) -> AnyPublisher { + if req.accountID == "baekteun" && req.password == "baekteun" { + return Just(DmsFeatures( + mealService: true, + noticeService: true, + pointService: true, + studyRoomService: false, + remainService: false + )) + .setFailureType(to: DmsError.self) + .delay(for: 1, scheduler: DispatchQueue.main) + .eraseToAnyPublisher() + } else { + return Fail(error: DmsError.passwordMismatch) + .delay(for: 1, scheduler: DispatchQueue.main) + .eraseToAnyPublisher() + } + } +}