Browse Source

penny test complete

pull/1/head
ccr 6 years ago
parent
commit
a9c48baa0e
  1. 2
      GMERemittance/Model/User.swift
  2. 1
      GMERemittance/Module/Home/Module Interface/HomeModuleInterface.swift
  3. 7
      GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift
  4. 10
      GMERemittance/Module/Home/User Interface/View/Home.storyboard
  5. 19
      GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
  6. 9
      GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift
  7. 1
      GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframeInput.swift
  8. 3
      GMERemittance/Module/PennyTest/User Interface/View/PennyTest.storyboard
  9. 9
      GMERemittance/Module/PennyTest/User Interface/View/PennyTestViewController.swift
  10. 3
      GMERemittance/Module/PennyTest/User Interface/Wireframe/PennyTestWireframe.swift
  11. 48
      GMERemittance/Module/PennyTestSubmit/User Interface/View/PennyTestSubmit.storyboard
  12. 82
      GMERemittance/Module/PennyTestSubmit/User Interface/View/PennyTestSubmitViewController.swift
  13. 15
      GMERemittance/Utility/AppConstants.swift

2
GMERemittance/Model/User.swift

@ -88,6 +88,7 @@ class User: Mappable {
var verified: Bool?
var active: Bool?
var primaryBankName: String?
var primaryAccountNumber: String?
var cmRegistrationId: String?
var isReferred: Bool?
var country: String?
@ -128,6 +129,7 @@ class User: Mappable {
verified <- map["verified"]
active <- map["active"]
primaryBankName <- map["primaryBankName"]
primaryAccountNumber <- map["primaryBankAccount"]
cmRegistrationId <- map["cmRegistrationId"]
isReferred <- map["isReferred"]
country <- map["country"]

1
GMERemittance/Module/Home/Module Interface/HomeModuleInterface.swift

@ -13,6 +13,7 @@ protocol HomeModuleInterface: class {
func openTrackYourTransfer()
func showKyc()
func showPennyTest()
func showPennyTestSubmit()
func refreshData()
func logout()
}

7
GMERemittance/Module/Home/User Interface/Presenter/HomePresenter.swift

@ -46,7 +46,12 @@ extension HomePresenter: HomeModuleInterface {
self.wireframe?.showPennyTest()
}
func showPennyTestSubmit() {
self.wireframe?.showPennyTestSubmit()
}
func refreshData() {
self.view?.showLoading()
self.interactor?.fetchUserInfo()
}
@ -60,6 +65,7 @@ extension HomePresenter: HomeModuleInterface {
extension HomePresenter: HomeInteractorOutput {
func show(model: User) {
self.view?.endRefreshing()
self.view?.hideLoading()
self.view?.show(model: model)
}
@ -69,6 +75,7 @@ extension HomePresenter: HomeInteractorOutput {
}
func show(panicError: Error) {
self.view?.hideLoading()
self.view?.show(panicError: panicError.localizedDescription)
}
}

10
GMERemittance/Module/Home/User Interface/View/Home.storyboard

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@ -60,7 +62,7 @@
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your document is in verification process. This will not take long. Thereafter you can enjoy GME online service." lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rwJ-pQ-p9z">
<rect key="frame" x="103" y="43" width="195" height="36"/>
<rect key="frame" x="103" y="43" width="196" height="36"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
@ -392,7 +394,7 @@
</scene>
</scenes>
<resources>
<image name="ic-home" width="20.5" height="20.5"/>
<image name="ic-home" width="20" height="20"/>
<image name="ic_cross" width="12" height="12"/>
<image name="ic_dragNdrop" width="10" height="10"/>
<image name="ic_home_payoutLocation" width="40" height="40"/>

19
GMERemittance/Module/Home/User Interface/View/HomeViewController.swift

@ -64,7 +64,7 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
configureViews()
showPennyTestScreen()
showPennyTestFirstTime()
updateBalance()
self.setActionBarIcons(showNotificationParameter: false) // set true if there is unread notification
}
@ -103,7 +103,10 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
self.presenter?.refreshData()
}
private func showPennyTestScreen() {
private func showPennyTestFirstTime() {
print(Utility.didPennyTestCancelled())
if Utility.didPennyTestCancelled() {return}
if Utility.pennyTestPresentedOnce() {return}
if Utility.shouldShowPennyTestScreen() {
presenter?.showPennyTest()
}
@ -297,8 +300,8 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
else if didSubmitKycAndNotVerified() {
verificationTitleLabel.text = "Verification in Process"
self.verificationText.text = "Your registration request is in approval process. You will soon be able to use GME services."
self.verificationHeaderLeftImageview.image = #imageLiteral(resourceName: "Page 1.png")
self.verificationHeaderRightButton.setImage(#imageLiteral(resourceName: "Group 15.png"), for: UIControlState.normal)
self.verificationHeaderLeftImageview.image = #imageLiteral(resourceName: "ic_home_verified")
self.verificationHeaderRightButton.setImage(#imageLiteral(resourceName: "ic_home_payoutLocation"), for: UIControlState.normal)
}
if didSubmitKycAndVerified() {
@ -329,7 +332,11 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
if self.didNotSubmitKycAndNotVerified() {
self.presenter?.showKyc()
}else if shouldShowPennyTestError() {
self.presenter?.showPennyTest()
if !Utility.didPennyTestCancelled() || !Utility.didPennyTestNotInitiated() {
presenter?.showPennyTestSubmit()
}else {
presenter?.showPennyTest()
}
}
}
@ -547,7 +554,7 @@ extension HomeViewController {
extension HomeViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
return !Utility.didSubmitKyc() || Utility.shouldShowPennyTestError()
return !Utility.didSubmitKyc() || Utility.shouldShowPennyTestError() || Utility.didPennyTestCancelled() || Utility.didPennyTestRequested() || Utility.didPennyTestNotInitiated()
}
}

9
GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift

@ -16,6 +16,7 @@ class HomeWireframe {
private lazy var kycWireFrame = KycWireframe()
private lazy var walletStatementWireframe = WalletStatementWireframe()
private lazy var pennyTestWireFrame = PennyTestWireframe()
private lazy var pennyTestSubmitWireFrame = PennyTestSubmitWireframe()
}
extension HomeWireframe: HomeWireframeInput {
@ -68,11 +69,15 @@ extension HomeWireframe: HomeWireframeInput {
}
}
func showPennyTest() {
func showPennyTestSubmit() {
if let navigation = self.view.navigationController {
// self.pennyTestWireFrame.pushMainView(in: navigation)
self.pennyTestWireFrame.openMainView(source: self.view)
self.pennyTestSubmitWireFrame.pushMainView(in: navigation)
}
}
func showPennyTest() {
self.pennyTestWireFrame.openViewControllerWithNavigation(viewController: pennyTestWireFrame.getMainView(), source: self.view)
}
func logOut() {

1
GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframeInput.swift

@ -16,4 +16,5 @@ protocol HomeWireframeInput: WireframeInput {
func openKyc()
func logOut()
func showPennyTest()
func showPennyTestSubmit()
}

3
GMERemittance/Module/PennyTest/User Interface/View/PennyTest.storyboard

@ -68,7 +68,7 @@
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="93u-O5-ntU">
<rect key="frame" x="146" y="489" width="63" height="33"/>
<rect key="frame" x="77.5" y="489" width="200" height="33"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
<state key="normal" title="Not Now">
<color key="titleColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="calibratedRGB"/>
@ -86,6 +86,7 @@
<constraint firstAttribute="bottom" secondItem="3OS-ti-E8d" secondAttribute="bottom" constant="150" id="MHW-g2-z2B"/>
<constraint firstAttribute="trailing" secondItem="v7v-LL-JPa" secondAttribute="trailing" constant="15" id="UTl-63-l11"/>
<constraint firstItem="93u-O5-ntU" firstAttribute="top" secondItem="3OS-ti-E8d" secondAttribute="bottom" constant="20" id="brn-z1-Eq8"/>
<constraint firstItem="93u-O5-ntU" firstAttribute="width" secondItem="3OS-ti-E8d" secondAttribute="width" id="fTY-Hp-gPY"/>
<constraint firstItem="93u-O5-ntU" firstAttribute="centerX" secondItem="4Rc-Nq-MZM" secondAttribute="centerX" id="gS6-pp-e6Q"/>
<constraint firstItem="v7v-LL-JPa" firstAttribute="leading" secondItem="4Rc-Nq-MZM" secondAttribute="leading" constant="15" id="gV4-qz-Ei0"/>
<constraint firstItem="v7v-LL-JPa" firstAttribute="centerX" secondItem="4Rc-Nq-MZM" secondAttribute="centerX" id="iHJ-iT-KL7"/>

9
GMERemittance/Module/PennyTest/User Interface/View/PennyTestViewController.swift

@ -28,11 +28,14 @@ class PennyTestViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.setup()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.title = "Penny Test"
self.setupNormalNavigation()
self.navigationItem.hidesBackButton = true
}
override func viewWillDisappear(_ animated: Bool) {
@ -56,8 +59,10 @@ class PennyTestViewController: UIViewController {
_view.frame = self.view.frame
self.view.addSubview(_view)
}
UserDefaults.standard.set(true, forKey: AppConstants.pennyTestPresentedOnce)
}
@IBAction func proceed(_ sender: UIButton) {
self.proceed()
}
@ -87,7 +92,7 @@ class PennyTestViewController: UIViewController {
private func updatePennyTestRequestStatus() {
let _default = UserDefaults.standard
_default.set(PennyTestStatusCode.requested, forKey: AppConstants.pennyTestStatusCode)
_default.set(PennyTestStatusCode.requested.rawValue, forKey: AppConstants.pennyTestStatusCode)
}
private func updatePennyTestCancelledStatus() {
@ -113,3 +118,5 @@ extension PennyTestViewController: PennyTestViewInterface {
extension PennyTestViewController: InitiatePennyTestService {
}

3
GMERemittance/Module/PennyTest/User Interface/Wireframe/PennyTestWireframe.swift

@ -34,6 +34,7 @@ extension PennyTestWireframe: PennyTestWireframeInput {
func openPennyTestWithSnapshot(snap: UIView?, source: UIViewController) {
self.snap = snap
openMainView(source: source)
openViewControllerWithNavigation(viewController: self.getMainView(), source: source)
}
}

48
GMERemittance/Module/PennyTestSubmit/User Interface/View/PennyTestSubmit.storyboard

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<device id="retina5_5" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
@ -30,7 +30,7 @@
<rect key="frame" x="20" y="20" width="374" height="696"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YR1-Vv-hRj">
<rect key="frame" x="0.0" y="0.0" width="374" height="521.33333333333337"/>
<rect key="frame" x="0.0" y="0.0" width="374" height="528"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your bank account verification is required in order to complete the registration. Do you want to verify it now?" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8QR-Wc-Fpw">
<rect key="frame" x="10" y="40" width="354" height="61"/>
@ -84,7 +84,7 @@
<constraint firstAttribute="width" constant="200" id="ycU-Tb-PDq"/>
</constraints>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<state key="normal" title="Verify">
<state key="normal" title="Submit">
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<userDefinedRuntimeAttributes>
@ -92,19 +92,57 @@
<integer key="value" value="25"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="Verify:" destination="HSb-ou-7T5" eventType="touchUpInside" id="Uwg-PH-645"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="A9e-bb-t3O">
<rect key="frame" x="87.333333333333314" y="475" width="200" height="33"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
<state key="normal" title="Not Now">
<color key="titleColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
</state>
<connections>
<action selector="dismiss:" destination="HSb-ou-7T5" eventType="touchUpInside" id="J01-4l-aDr"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dtR-kg-amx">
<rect key="frame" x="87" y="246" width="200" height="50"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="BUu-4w-sXR"/>
<constraint firstAttribute="width" constant="200" id="qmf-nN-8gf"/>
</constraints>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<state key="normal" title="Resend Request">
<color key="titleColor" red="0.94117647058823528" green="0.2196078431372549" blue="0.21568627450980393" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
<integer key="value" value="25"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="resend:" destination="HSb-ou-7T5" eventType="touchUpInside" id="gKb-w7-Mz3"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="A9e-bb-t3O" firstAttribute="top" secondItem="XMM-cS-g9L" secondAttribute="bottom" constant="13.67" id="38b-qV-Z9U"/>
<constraint firstItem="dtR-kg-amx" firstAttribute="centerX" secondItem="XMM-cS-g9L" secondAttribute="centerX" id="6Ga-EQ-4xX"/>
<constraint firstItem="A9e-bb-t3O" firstAttribute="width" secondItem="XMM-cS-g9L" secondAttribute="width" id="BAe-fV-QaY"/>
<constraint firstAttribute="trailing" secondItem="8QR-Wc-Fpw" secondAttribute="trailing" constant="10" id="DNR-FF-3LX"/>
<constraint firstItem="XMM-cS-g9L" firstAttribute="top" secondItem="qgg-86-qk0" secondAttribute="bottom" priority="250" constant="200" id="FHE-uD-cLe"/>
<constraint firstAttribute="trailing" secondItem="qgg-86-qk0" secondAttribute="trailing" constant="12" id="JWP-dv-kzs"/>
<constraint firstItem="8QR-Wc-Fpw" firstAttribute="top" secondItem="YR1-Vv-hRj" secondAttribute="top" constant="40" id="T5l-Xt-BdH"/>
<constraint firstItem="qgg-86-qk0" firstAttribute="top" secondItem="8QR-Wc-Fpw" secondAttribute="bottom" constant="35" id="VCv-VI-QYK"/>
<constraint firstItem="XMM-cS-g9L" firstAttribute="centerX" secondItem="YR1-Vv-hRj" secondAttribute="centerX" id="WB9-Qt-FB9"/>
<constraint firstItem="A9e-bb-t3O" firstAttribute="centerX" secondItem="YR1-Vv-hRj" secondAttribute="centerX" id="ZUx-ib-Ocv"/>
<constraint firstAttribute="bottom" secondItem="A9e-bb-t3O" secondAttribute="bottom" constant="20" id="ZwT-4K-w1i"/>
<constraint firstItem="8QR-Wc-Fpw" firstAttribute="leading" secondItem="YR1-Vv-hRj" secondAttribute="leading" constant="10" id="cSd-st-5Ok"/>
<constraint firstItem="qgg-86-qk0" firstAttribute="leading" secondItem="YR1-Vv-hRj" secondAttribute="leading" constant="8" id="cxG-wd-DZm"/>
<constraint firstAttribute="bottom" secondItem="XMM-cS-g9L" secondAttribute="bottom" constant="60" id="w8e-u4-Mf7"/>
<constraint firstItem="dtR-kg-amx" firstAttribute="top" secondItem="jbh-6H-7xd" secondAttribute="bottom" constant="34.666666666666657" id="uRw-nm-G1J"/>
</constraints>
</view>
</subviews>

82
GMERemittance/Module/PennyTestSubmit/User Interface/View/PennyTestSubmitViewController.swift

@ -8,6 +8,8 @@
import UIKit
import PMAlertController
import FirebaseInstanceID
class PennyTestSubmitViewController: UIViewController {
@ -29,7 +31,10 @@ class PennyTestSubmitViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.setupNormalNavigation()
self.navigationItem.title = "Penny test"
self.navigationItem.hidesBackButton = true
}
// MARK: IBActions
@ -40,6 +45,7 @@ class PennyTestSubmitViewController: UIViewController {
// all setup should be done here
let message = UserDefaults.standard.string(forKey: AppConstants.pennyTestServerMessage)
self.titleLabel.text = message
}
@IBAction func viewSample(_ sender: Any) {
@ -47,6 +53,16 @@ class PennyTestSubmitViewController: UIViewController {
}
@IBAction func resend(_ sender: Any) {
self.proceed()
}
@IBAction func dismiss(_ sender: Any) {
let userdefault = UserDefaults.standard
userdefault.set(PennyTestStatusCode.requested.rawValue, forKey: AppConstants.pennyTestStatusCode)
self.navigationController?.popToRootViewController(animated: true)
}
func showSampleImage() {
let image = #imageLiteral(resourceName: "penny3.jpg")
let alertVC = PMAlertController(title: "", description: "", image: image, style: .alert)
@ -56,6 +72,36 @@ class PennyTestSubmitViewController: UIViewController {
self.present(alertVC, animated: true, completion: nil)
}
private func proceed() {
let userId = Utility.getMyUserName()
self.showLoading()
self.initiate(userId: userId, success: { result in
self.hideLoading()
UserDefaults.standard.set(result.message, forKey: AppConstants.pennyTestServerMessage)
self.updatePennyTestRequestStatus()
}) { (error) in
self.updatePennyTestRequestStatus()
self.hideLoading()
self.alert(message: error.localizedDescription)
}
}
private func updatePennyTestRequestStatus() {
let _default = UserDefaults.standard
_default.set(PennyTestStatusCode.requested.rawValue, forKey: AppConstants.pennyTestStatusCode)
}
private func showLoading() {
self.showProgressHud()
}
private func hideLoading() {
self.hideProgressHud()
}
@IBAction func Verify(_ sender: UIButton) {
let customerId = Utility.getMyId()
let certNumber = self.verificationCodeTextField.text!
@ -75,6 +121,7 @@ class PennyTestSubmitViewController: UIViewController {
self.submit(params: params, success: { (response) in
self.alertWithOk(message: response.message ?? "", title: "Success", okTitle: "Ok", style: UIAlertControllerStyle.alert
, OkStyle: .default, okAction: {
UserDefaults.standard.set(PennyTestStatusCode.completed, forKey: AppConstants.pennyTestStatusCode)
self.navigationController?.popToRootViewController(animated: true)
})
}) { (error) in
@ -82,6 +129,30 @@ class PennyTestSubmitViewController: UIViewController {
}
}
private func getFcmToken() -> String? {
let token = InstanceID.instanceID().token()
return token
}
func fetchUserInfo() {
let userId = Utility.getMyUserName()
var param = ["userId" : userId]
param["uuid"] = Utility.getUUid() ?? ""
param["appVersion"] = Utility.getAppVersion()
param["phoneBrand"] = Utility.getPhoneBrand()
param["phoneOs"] = Utility.getPhoneOs()
param["fcmId"] = self.getFcmToken()
param["osVersion"] = Utility.getOsVersion()
self.fetchUserInfo(param: param, success: { user in
self.navigationController?.popToRootViewController(animated: true)
}) { error in
self.navigationController?.popToRootViewController(animated: true)
}
}
}
// MARK: PennyTestSubmitViewInterface
@ -95,3 +166,14 @@ extension PennyTestSubmitViewController: SubmitPennyTestService {
extension PennyTestSubmitViewController: InitiatePennyTestService {
}
extension PennyTestSubmitViewController: UserInfoService {
}

15
GMERemittance/Utility/AppConstants.swift

@ -24,6 +24,7 @@ class AppConstants {
static let pennyTestServerMessage = "pennyTestServerMessage"
static let pennyTestStatusCode = "pennyTestStatusCode"
static let pennyTestRequested = "pennyTestRequested"
static let pennyTestPresentedOnce = "pennyTestPresentedOnce"
}
enum Devices {
@ -80,6 +81,12 @@ class Utility {
return val
}
static func pennyTestPresentedOnce() -> Bool {
let val = UserDefaults.standard.bool(forKey: AppConstants.pennyTestPresentedOnce)
// UserDefaults.standard.set(true, forKey: AppConstants.pennyTestPresentedOnce)
return val
}
static func didPennyTestCancelled() -> Bool {
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? "0" == PennyTestStatusCode.cancelled.rawValue
return val
@ -90,9 +97,13 @@ class Utility {
return val
}
static func pennyTestVerified() -> Bool {
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? PennyTestStatusCode.notStarted.rawValue == PennyTestStatusCode.completed.rawValue
return val
}
static func shouldShowPennyTestError() -> Bool {
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? PennyTestStatusCode.notStarted.rawValue != PennyTestStatusCode.completed.rawValue
print(val)
return val
}
@ -125,6 +136,7 @@ class Utility {
static func getMyPrimaryAccountNumber() -> String {
let defaults = UserDefaults.standard
let val = defaults.string(forKey: UserKeys.primaryAccountNumber) ?? ""
print(val)
return val
}
@ -198,6 +210,7 @@ class Utility {
save(value: user?.idNumber ?? "", forKey: UserKeys.idNumber)
save(value: user?.country ?? "" , forKey: UserKeys.country)
save(value: user?.countryCode, forKey: UserKeys.countryCode)
save(value: user?.primaryAccountNumber, forKey: UserKeys.primaryAccountNumber)
save(value: user?.senderId, forKey: UserKeys.senderId)
save(value: user?.yearlyLimit, forKey: UserKeys.yearlyLimit)
save(value: user?.dateOfBirth, forKey: UserKeys.dateOfBirth)

Loading…
Cancel
Save