// // PennyTestViewController.swift // GME Remit // // Created by Mac on 11/27/18. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class PennyTestViewController: UIViewController { struct StringConstants { let proceedText = "proceed_text".localized() let notNowText = "not_now_text".localized() } // MARK: Properties var presenter: PennyTestModuleInterface? var model: KYCResponse? var backGroundView: UIView? // MARK: IBOutlets @IBOutlet weak var dismissButton: UIButton! @IBOutlet weak var iconImageView: UIImageView! @IBOutlet weak var infoLabel: UILabel! @IBOutlet weak var proceedButton: UIButton! // MARK: VC's Life cycle override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver( self, selector: #selector(self.closePennyTest(sender:)), name: NSNotification.Name.init("closePennyTest"), object: nil ) self.setup() } @objc private func closePennyTest(sender: Notification) { self.dismiss(animated: true, completion: nil) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) GMEDB.shared.user.set(true, .pennyTestPresentedOnce) self.navigationItem.title = "penny_test_title_text".localized() self.setupNormalNavigation() self.navigationItem.hidesBackButton = true } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationItem.title = "" GMEDB.shared.user.set(true, .pennyTestPresentedOnce) } // MARK: IBActions // MARK: Other Functions private func setup() { // all setup should be done here self.setupNormalNavigation() self.proceedButton.layer.cornerRadius = 5 iconImageView.rounded() iconImageView.layer.borderColor = UIColor.themeRed.cgColor iconImageView.layer.borderWidth = 2 iconImageView.layer.contentsScale = UIScreen.main.scale if let view = self.backGroundView { view.frame = self.view.frame self.view.addSubview(view) } GMEDB.shared.user.set(true, .pennyTestPresentedOnce) configureText() } private func configureText() { self.proceedButton.setTitle(StringConstants().proceedText, for: UIControl.State.normal) self.dismissButton.setTitle(StringConstants().notNowText, for: UIControl.State.normal) // penny_test_promt_description_text infoLabel.text = "penny_test_promt_description_text".localized() } @IBAction func proceed(_ sender: UIButton) { self.proceed() } @IBAction func dismiss(_ sender: UIButton) { self.updatePennyTestCancelledStatus() self.dismiss(animated: true, completion: nil) } private func proceed() { let userId = Utility.getMyUserName() self.showLoading() self.initiate( userId: userId, isResendRequest: "N", success: { result in self.hideLoading() GMEDB.shared.user.set(result.message, .pennyTestServerMessage) self.updatePennyTestRequestStatus() let wireframe = PennyTestSubmitWireframe() if let navigation = self.navigationController { wireframe.parentViewController = self wireframe.pushMainView(in: navigation) } }, failure: { (error) in self.hideLoading() self.alert(type: .error, message: error.localizedDescription) } ) } private func updatePennyTestRequestStatus() { GMEDB.shared.user.set(PennyTestStatusCode.requested.rawValue, .pennyTestStatusCode) } private func updatePennyTestCancelledStatus() { GMEDB.shared.user.set(PennyTestStatusCode.cancelled.rawValue, .pennyTestStatusCode) } func showLoading() { self.showProgressHud() } func hideLoading() { self.hideProgressHud() } } // MARK: PennyTestViewInterface extension PennyTestViewController: PennyTestViewInterface { } extension PennyTestViewController: InitiatePennyTestService { }