diff --git a/GME Remit/APIs/Router/APIRouter.swift b/GME Remit/APIs/Router/APIRouter.swift index 72d71f18..57017429 100644 --- a/GME Remit/APIs/Router/APIRouter.swift +++ b/GME Remit/APIs/Router/APIRouter.swift @@ -79,6 +79,7 @@ enum APIRouter { // MARK: - New Registration case loadKYCInformation case saveKYCInformation(model: KYCSave) + case requestPennyTestAtRegister(resend: String) } // MARK: - Request @@ -495,6 +496,9 @@ extension APIRouter { return "\(baseUrlWithoutVersion)/v4/Mobile/loadform/\(userID)/kyc" case .saveKYCInformation: return "\(baseUrlWithoutVersion)/v4/mobile/RegisterKyc" + case .requestPennyTestAtRegister(let resend): + let userID = GMEDB.shared.user.string(.userId) ?? "" + return "\(baseUrl)/mobile/pennytest/start/\(userID)?reSendCode=\(resend)" } } } @@ -579,6 +583,8 @@ extension APIRouter { return .get case .saveKYCInformation: return .post + case .requestPennyTestAtRegister: + return .post } } diff --git a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractor.swift b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractor.swift index 0ea8ec72..ccdd7bbe 100644 --- a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractor.swift +++ b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractor.swift @@ -26,5 +26,15 @@ class NewRegisterInteractor { // MARK: NewRegister interactor input interface extension NewRegisterInteractor: NewRegisterInteractorInput { - + func requestPennyTest() { + service.requestPennyTest( + isResendRequest: "N", + success: {[weak self] in + self?.output?.resultRequestPennyTest(with: $0) + }, + failure: {[weak self] in + self?.output?.setError(with: $0) + } + ) + } } diff --git a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractorIO.swift b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractorIO.swift index 3c38f1f3..517ef3e1 100644 --- a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractorIO.swift +++ b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Interactor/NewRegisterInteractorIO.swift @@ -7,9 +7,10 @@ // protocol NewRegisterInteractorInput: class { - + func requestPennyTest() } protocol NewRegisterInteractorOutput: class { - + func resultRequestPennyTest(with message: SuccessMessage) + func setError(with error: Error) } diff --git a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterService.swift b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterService.swift index 91198a10..65ed7146 100644 --- a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterService.swift +++ b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterService.swift @@ -9,5 +9,12 @@ import Foundation class NewRegisterService: NewRegisterServiceType { - + func requestPennyTest( + isResendRequest: String, + success: @escaping (SuccessMessage) -> Void, + failure: @escaping (Error) -> Void + ) { + APIRouter.requestPennyTestAtRegister(resend: isResendRequest) + .json(success: success, failure: failure) + } } diff --git a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterServiceType.swift b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterServiceType.swift index 3a77b42d..ba26afe9 100644 --- a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterServiceType.swift +++ b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/Application Logic/Service/NewRegisterServiceType.swift @@ -7,5 +7,9 @@ // protocol NewRegisterServiceType: class { - + func requestPennyTest( + isResendRequest: String, + success: @escaping (SuccessMessage) -> Void, + failure: @escaping (Error) -> Void + ) } diff --git a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/User Interface/Presenter/NewRegisterPresenter.swift b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/User Interface/Presenter/NewRegisterPresenter.swift index 6c5c6e33..73e437fb 100644 --- a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/User Interface/Presenter/NewRegisterPresenter.swift +++ b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/User Interface/Presenter/NewRegisterPresenter.swift @@ -29,7 +29,14 @@ class NewRegisterPresenter: ViewModelType { func transform(input: Input) -> Output { input.moveStep.drive(onNext: {[weak self] in - self?.wireframe?.moveStep(to: $0) + switch $0 { + case .third: + //GMEDB.shared.user.string(.pennyTestRequested) + // Check penny test request status. if 0 then request api, else 2 then go next step. + self?.interactor?.requestPennyTest() + default: + self?.wireframe?.moveStep(to: $0) + } }).disposed(by: disposeBag) return Output( @@ -41,5 +48,11 @@ class NewRegisterPresenter: ViewModelType { // MARK: NewRegister interactor output interface extension NewRegisterPresenter: NewRegisterInteractorOutput { + func resultRequestPennyTest(with message: SuccessMessage) { + wireframe?.moveStep(to: .third) + } + func setError(with error: Error) { + errorLinker.onNext(error) + } } diff --git a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegisterStep1/User Interface/View/NewRegisterStep1.storyboard b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegisterStep1/User Interface/View/NewRegisterStep1.storyboard index b2b07de2..26b5dcc8 100644 --- a/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegisterStep1/User Interface/View/NewRegisterStep1.storyboard +++ b/GME Remit/Modules/RegisterModules/UserAuthentication/NewRegisterStep1/User Interface/View/NewRegisterStep1.storyboard @@ -304,184 +304,194 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +