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() + } + } +}