|
|
@ -7,92 +7,132 @@ |
|
|
|
// |
|
|
|
|
|
|
|
import Foundation |
|
|
|
|
|
|
|
import UIKit |
|
|
|
class SetupRecipientPresenter { |
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
weak var viewModel: SetupRecipientViewModelInterface? |
|
|
|
var interactor: SetupRecipientInteractorInput? |
|
|
|
var wireframe: SetupRecipientWireframeInput? |
|
|
|
|
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
weak var viewModel: SetupRecipientViewModelInterface? |
|
|
|
var interactor: SetupRecipientInteractorInput? |
|
|
|
var wireframe: SetupRecipientWireframeInput? |
|
|
|
var recipient: Recipient? = nil |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// MARK: SetupRecipient module interface |
|
|
|
extension SetupRecipientPresenter: SetupRecipientModuleInterface { |
|
|
|
func moveToTermsAndConditionView(at recipient: Recipient, _ viewController: SetupRecipientViewController) { |
|
|
|
let termsViewController = TermsAndConditionWireframe().getMainView() as? TermsAndConditionViewController |
|
|
|
let termsViewController = TermsAndConditionWireframe().getMainView() as? TermsAndConditionViewController |
|
|
|
termsViewController?.reciepient = recipient |
|
|
|
termsViewController?.fromBeneficiary = true |
|
|
|
if let termsViewController = termsViewController { |
|
|
|
viewController.push(termsViewController, animated: true) |
|
|
|
viewController.push(termsViewController, animated: true) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func checkOtp(otp: String, userId: String, receiverID: String) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
self.interactor?.checkOtp(otp: otp, userId: userId, receiverID: receiverID) |
|
|
|
} |
|
|
|
|
|
|
|
func requestOtp(viewController: SetupRecipientViewController, userId: String, receiverID: String) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
self.interactor?.requestOTP(viewController: viewController, userId: userId, receiverID: receiverID) |
|
|
|
} |
|
|
|
|
|
|
|
func fetchCountriesAndServiceTypes() { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
interactor?.fetchCountriesAndServiceTypes() |
|
|
|
} |
|
|
|
|
|
|
|
func openSelectMode(with model: [TablePresenterProtocol], type: SetupOpenType) { |
|
|
|
wireframe?.openSelectMode(with: model, type: type) |
|
|
|
} |
|
|
|
|
|
|
|
func openBranches(countryCode: String, bankID: String) { |
|
|
|
wireframe?.openBranches(countryCode: countryCode, bankID: bankID) |
|
|
|
} |
|
|
|
|
|
|
|
func fetchDynamicRecipientFields(country: CountryAndServiceModel?, paymentMode: PaymentServiceType?) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
interactor?.fetchDynamicRecipientFields( |
|
|
|
country: country?.countryId ?? "", |
|
|
|
paymentMode: paymentMode?.id ?? "" |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
func saveRecipient(at recipient: Recipient, parentType: RecipientParentType, viewcontroller: SetupRecipientViewController) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
if recipient.receiverID == nil { |
|
|
|
interactor?.addRecipient(at: recipient) |
|
|
|
} else { |
|
|
|
self.recipient = recipient |
|
|
|
let userId = GMEDB.shared.user.string(.userId) ?? "" |
|
|
|
interactor?.requestOTP(viewController: viewcontroller, userId: userId, receiverID: recipient.receiverID ?? "") |
|
|
|
//interactor?.editRecipient(at: recipient) |
|
|
|
} |
|
|
|
// termsViewController?.requestModel = self.requestModel |
|
|
|
// termsViewController?.hudDelegate = self |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func fetchCountriesAndServiceTypes() { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
interactor?.fetchCountriesAndServiceTypes() |
|
|
|
} |
|
|
|
|
|
|
|
func openSelectMode(with model: [TablePresenterProtocol], type: SetupOpenType) { |
|
|
|
wireframe?.openSelectMode(with: model, type: type) |
|
|
|
} |
|
|
|
|
|
|
|
func openBranches(countryCode: String, bankID: String) { |
|
|
|
wireframe?.openBranches(countryCode: countryCode, bankID: bankID) |
|
|
|
} |
|
|
|
|
|
|
|
func fetchDynamicRecipientFields(country: CountryAndServiceModel?, paymentMode: PaymentServiceType?) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
interactor?.fetchDynamicRecipientFields( |
|
|
|
country: country?.countryId ?? "", |
|
|
|
paymentMode: paymentMode?.id ?? "" |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
func saveRecipient(at recipient: Recipient) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
if recipient.receiverID == nil { |
|
|
|
interactor?.addRecipient(at: recipient) |
|
|
|
} else { |
|
|
|
interactor?.editRecipient(at: recipient) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func validateAccount(with validateAccountModel: ValidateAccountRequest, recipient: Recipient) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
interactor?.validateAccount(with: validateAccountModel, recipient: recipient) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func validateAccount(with validateAccountModel: ValidateAccountRequest, recipient: Recipient) { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
interactor?.validateAccount(with: validateAccountModel, recipient: recipient) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// MARK: SetupRecipient interactor output interface |
|
|
|
extension SetupRecipientPresenter: SetupRecipientInteractorOutput { |
|
|
|
func setCoutryServices(with model: [CountryAndServiceModel], recipient: Recipient?) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setCoutryServices(with: model, recipient: recipient) |
|
|
|
} |
|
|
|
|
|
|
|
func setDynamicFields(with model: DynamicFieldModel, nativeCountires: [NativeCountryModel]) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setDynamicFields(with: model, nativeCountires: nativeCountires) |
|
|
|
} |
|
|
|
|
|
|
|
func setError(with error: Error) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setError(with: error) |
|
|
|
} |
|
|
|
|
|
|
|
func success(with model: ResponseContainerObject<Recipient>) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.success(with: model) |
|
|
|
} |
|
|
|
func setCoutryServices(with model: [CountryAndServiceModel], recipient: Recipient?) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setCoutryServices(with: model, recipient: recipient) |
|
|
|
} |
|
|
|
|
|
|
|
func setDynamicFields(with model: DynamicFieldModel, nativeCountires: [NativeCountryModel]) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setDynamicFields(with: model, nativeCountires: nativeCountires) |
|
|
|
} |
|
|
|
|
|
|
|
func setError(with error: Error) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setError(with: error) |
|
|
|
} |
|
|
|
|
|
|
|
func success(with model: ResponseContainerObject<Recipient>) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.success(with: model) |
|
|
|
} |
|
|
|
|
|
|
|
func success() { |
|
|
|
viewModel?.progress(isShow: true) |
|
|
|
if let recipent = self.recipient { |
|
|
|
interactor?.editRecipient(at: recipent) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func show(error: Error) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setError(with: error) |
|
|
|
} |
|
|
|
|
|
|
|
func checkOtpError(error: Error) { |
|
|
|
viewModel?.progress(isShow: false) |
|
|
|
viewModel?.setError(with: error) |
|
|
|
} |
|
|
|
|
|
|
|
func showOTPView(viewController: SetupRecipientViewController) { |
|
|
|
guard let otpviewController = UIStoryboard(name: "OtpVerification", bundle: nil) |
|
|
|
.instantiateViewController(withIdentifier: "OtpVerificationViewController") as? OtpVerificationViewController else { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
otpviewController.delegate = viewController |
|
|
|
viewController.present(otpviewController, animated: true, completion: nil) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// MARK: SetupRecipient wireframe output interface |
|
|
|
extension SetupRecipientPresenter: SetupRecipientWireframeOutput { |
|
|
|
func setSelectedData(with model: TablePresenterProtocol?, type: SetupOpenType) { |
|
|
|
viewModel?.setSelectedData(with: model, type: type) |
|
|
|
} |
|
|
|
func setSelectedData(with model: TablePresenterProtocol?, type: SetupOpenType) { |
|
|
|
viewModel?.setSelectedData(with: model, type: type) |
|
|
|
} |
|
|
|
} |