updated
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
a88a83e3ec
commit
d7781c5532
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import MVMCoreUI
|
import CoreTelephony
|
||||||
|
|
||||||
extension Decodable {
|
extension Decodable {
|
||||||
static func map(JSONString:String) -> Self? {
|
static func map(JSONString:String) -> Self? {
|
||||||
@ -68,12 +68,28 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UISplitViewControllerDele
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.register()
|
self.register()
|
||||||
|
//getCT()
|
||||||
let json = ["actionType" : "trialFraudDeviceCheckGet"]
|
let json = ["actionType" : WebViewBridgeTrialFraudUserGetModel.identifier]
|
||||||
self.testBridge(json: json)
|
self.testBridge(json: json)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// func getCT() {
|
||||||
|
// let info: CTTelephonyNetworkInfo = CTTelephonyNetworkInfo()
|
||||||
|
// if #available(iOS 12.0, *) {
|
||||||
|
// for (service, carrier) in info.serviceSubscriberCellularProviders ?? [:] {
|
||||||
|
// print("\(service), \(carrier)")
|
||||||
|
// print(carrier.carrierName!)
|
||||||
|
// print(carrier.mobileCountryCode!)
|
||||||
|
// print(carrier.mobileNetworkCode!)
|
||||||
|
// print(carrier.isoCountryCode!)
|
||||||
|
// print(carrier.allowsVOIP)
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// // Fallback on earlier versions
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
@objc func jsonPasteAndGo(_ sender: UILongPressGestureRecognizer) {
|
@objc func jsonPasteAndGo(_ sender: UILongPressGestureRecognizer) {
|
||||||
if sender.state == .ended {
|
if sender.state == .ended {
|
||||||
(dvc as? DetailViewController)?.textView.text = UIPasteboard.general.string
|
(dvc as? DetailViewController)?.textView.text = UIPasteboard.general.string
|
||||||
@ -152,7 +168,7 @@ extension AppDelegate {
|
|||||||
func register(){
|
func register(){
|
||||||
ModelRegistry.register(handler: WebViewBridgeTrialFraudDeviceCheckGet.self, for: WebViewBridgeTrialFraudDeviceCheckGetModel.self)
|
ModelRegistry.register(handler: WebViewBridgeTrialFraudDeviceCheckGet.self, for: WebViewBridgeTrialFraudDeviceCheckGetModel.self)
|
||||||
//ModelRegistry.register(handler: WebViewBridgeTrialFraudUserSet.self, for: WebViewBridgeTrialFraudUserSetModel.self)
|
//ModelRegistry.register(handler: WebViewBridgeTrialFraudUserSet.self, for: WebViewBridgeTrialFraudUserSetModel.self)
|
||||||
//ModelRegistry.register(handler: WebViewBridgeTrialFraudUserGet.self, for: WebViewBridgeTrialFraudUserGetModel.self)
|
ModelRegistry.register(handler: WebViewBridgeTrialFraudUserGet.self, for: WebViewBridgeTrialFraudUserGetModel.self)
|
||||||
ModelRegistry.register(handler: EmailVerifyField.self, for: EmailVerifyModel.self)
|
ModelRegistry.register(handler: EmailVerifyField.self, for: EmailVerifyModel.self)
|
||||||
ModelRegistry.register(handler: PillLabel.self, for: PillLabelModel.self)
|
ModelRegistry.register(handler: PillLabel.self, for: PillLabelModel.self)
|
||||||
ModelRegistry.register(handler: SampleWebViewBridge.self, for: SampleWebViewBridgeModel.self)
|
ModelRegistry.register(handler: SampleWebViewBridge.self, for: SampleWebViewBridgeModel.self)
|
||||||
@ -172,7 +188,6 @@ extension AppDelegate {
|
|||||||
print("Thread isMain: \(Thread.isMainThread)")
|
print("Thread isMain: \(Thread.isMainThread)")
|
||||||
anyHandler.perform(then: { result in
|
anyHandler.perform(then: { result in
|
||||||
print("Thread isMain: \(Thread.isMainThread)")
|
print("Thread isMain: \(Thread.isMainThread)")
|
||||||
let value = try? result.get()
|
|
||||||
switch result{
|
switch result{
|
||||||
case .success(let value):
|
case .success(let value):
|
||||||
if let value = value {
|
if let value = value {
|
||||||
|
|||||||
@ -0,0 +1,195 @@
|
|||||||
|
{
|
||||||
|
"ResponseInfo": {
|
||||||
|
"locale": "EN",
|
||||||
|
"server": "10-74-170-83.ebiz.verizon.com-mf_prepayss01",
|
||||||
|
"code": "00000",
|
||||||
|
"hideNotificationLogo": false,
|
||||||
|
"message": "0",
|
||||||
|
"buildNumber": "6698",
|
||||||
|
"type": "Success",
|
||||||
|
"requestId": "dbb1ee17-69fe-464e-8a82-9563b83422ab",
|
||||||
|
"topAlertTime": 0
|
||||||
|
},
|
||||||
|
"Page": {
|
||||||
|
"navigationBar": {
|
||||||
|
"moleculeName": "navigationBar",
|
||||||
|
"title": "Account security"
|
||||||
|
},
|
||||||
|
"pageType": "tbd",
|
||||||
|
"cache": false,
|
||||||
|
"screenHeading": "Account security",
|
||||||
|
"template": "stack",
|
||||||
|
"header": {
|
||||||
|
"moleculeName": "header",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "headlineBody",
|
||||||
|
"headline": {
|
||||||
|
"moleculeName": "label",
|
||||||
|
"text": "Next up, let's secure this account."
|
||||||
|
},
|
||||||
|
"body": {
|
||||||
|
"moleculeName": "label",
|
||||||
|
"attributes": [
|
||||||
|
{
|
||||||
|
"topPadding": 30,
|
||||||
|
"length": 19,
|
||||||
|
"action": {
|
||||||
|
"actionType": "openPage",
|
||||||
|
"analyticsData": {
|
||||||
|
"vzdl.page.pageLinkName": "/mf/Manage Profile|Email Verify",
|
||||||
|
"vzdl.page.linkName": "Verify"
|
||||||
|
},
|
||||||
|
"pageType": "whyWeAskingAEMPR"
|
||||||
|
},
|
||||||
|
"location": 113,
|
||||||
|
"type": "action"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "We'll use this PIN and security question for verification and help accessing the account. Make sure the PIN meets these requirements."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stack": {
|
||||||
|
"moleculeName": "stack",
|
||||||
|
"molecules": [
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"horizontalAlignment": "leading",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "digitTextField",
|
||||||
|
"editable": true,
|
||||||
|
"title": "Account security PIN",
|
||||||
|
"digits": 4,
|
||||||
|
"fieldKey": "securityPIN"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"horizontalAlignment": "leading",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "digitTextField",
|
||||||
|
"editable": true,
|
||||||
|
"title": "Confirm account security PIN",
|
||||||
|
"type": "secure",
|
||||||
|
"digits": 4,
|
||||||
|
"fieldKey": "confirmSecurityPIN"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "dropDown",
|
||||||
|
"fieldKey": "securityQuestion",
|
||||||
|
"title": "Security question",
|
||||||
|
"options": [
|
||||||
|
"What was the first live concert you attended?",
|
||||||
|
"Where did you and your spouse first meet?",
|
||||||
|
"What was your favorite place to visit as a child?",
|
||||||
|
"What was the first name of your first roommate?",
|
||||||
|
"What is the name of a memorable place?",
|
||||||
|
"What is the first name of your best friend?",
|
||||||
|
"What was your favorite restaurant in college?"
|
||||||
|
],
|
||||||
|
"selectedIndex": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "textField",
|
||||||
|
"title": "Security answer",
|
||||||
|
"type": "text",
|
||||||
|
"fieldKey": "securityAnswer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "label",
|
||||||
|
"text": "Be sure to remember these details. They'll be needed to access the account later."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"moleculeName": "footer",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "twoButtonView",
|
||||||
|
"primaryButton": {
|
||||||
|
"groupName": "default",
|
||||||
|
"moleculeName": "button",
|
||||||
|
"title": "Next",
|
||||||
|
"action": {
|
||||||
|
"analyticsData": {
|
||||||
|
"vzdl.page.linkName": "Legal Disclosure"
|
||||||
|
},
|
||||||
|
"fieldKey": "next",
|
||||||
|
"actionType": "openPage",
|
||||||
|
"extraParameters": {
|
||||||
|
"from": "none"
|
||||||
|
},
|
||||||
|
"presentationStyle": "push",
|
||||||
|
"pageType": "legalDisclosurePR"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"formRules": [
|
||||||
|
{
|
||||||
|
"groupName": "default",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"regex": "^(?!.*0123|.*1234|.*2345|.*3456|.*4567|.*5678|.*6789|.*3210|.*4321|.*5432|.*6543|.*7654|.*8765|.*9876|.*0000|.*1111|.*2222|.*3333|.*4444|.*5555|.*6666|.*7777|.*8888|.*9999).*$",
|
||||||
|
"type": "regex",
|
||||||
|
"fields": [
|
||||||
|
"securityPIN"
|
||||||
|
],
|
||||||
|
"errorMessage": {
|
||||||
|
"securityPIN": "Your PIN can't have numbers in order or repeating."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "equals",
|
||||||
|
"fields": [
|
||||||
|
"securityPIN",
|
||||||
|
"confirmSecurityPIN"
|
||||||
|
],
|
||||||
|
"errorMessage": {
|
||||||
|
"confirmSecurityPIN": "Your account PIN entries don't match. Try again."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "regex",
|
||||||
|
"regex": "^[A-Za-z0-9 ]{3,10}$",
|
||||||
|
"fields": [
|
||||||
|
"securityAnswer"
|
||||||
|
],
|
||||||
|
"errorMessage": {
|
||||||
|
"securityAnswer": "Your security answer can only letters, numbers, spaces, and periods."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "regex",
|
||||||
|
"regex": "^.{3,10}$",
|
||||||
|
"fields": [
|
||||||
|
"securityAnswer"
|
||||||
|
],
|
||||||
|
"errorMessage": {
|
||||||
|
"securityAnswer": "Your answer must be between 3-10 characters."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "allRequired",
|
||||||
|
"ruleId": "requiredRule",
|
||||||
|
"fields": [
|
||||||
|
"securityPIN",
|
||||||
|
"confirmSecurityPIN",
|
||||||
|
"securityAnswer"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,133 @@
|
|||||||
|
{
|
||||||
|
"ResponseInfo": {
|
||||||
|
"locale": "EN",
|
||||||
|
"server": "10-74-170-83.ebiz.verizon.com-mf_prepayss01",
|
||||||
|
"code": "00000",
|
||||||
|
"hideNotificationLogo": false,
|
||||||
|
"message": "0",
|
||||||
|
"buildNumber": "6698",
|
||||||
|
"type": "Success",
|
||||||
|
"requestId": "dbb1ee17-69fe-464e-8a82-9563b83422ab",
|
||||||
|
"topAlertTime": 0
|
||||||
|
},
|
||||||
|
"Page": {
|
||||||
|
"navigationBar": {
|
||||||
|
"moleculeName": "navigationBar",
|
||||||
|
"title": "Account security"
|
||||||
|
},
|
||||||
|
"pageType": "tbd",
|
||||||
|
"cache": false,
|
||||||
|
"screenHeading": "Account security",
|
||||||
|
"template": "stack",
|
||||||
|
"stack": {
|
||||||
|
"moleculeName": "stack",
|
||||||
|
"molecules": [
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"horizontalAlignment": "leading",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "digitTextField",
|
||||||
|
"editable": true,
|
||||||
|
"title": "Account security PIN",
|
||||||
|
"digits": 4,
|
||||||
|
"fieldKey": "securityPIN"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"horizontalAlignment": "leading",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "digitTextField",
|
||||||
|
"editable": true,
|
||||||
|
"title": "Confirm account security PIN",
|
||||||
|
"type": "text",
|
||||||
|
"digits": 4,
|
||||||
|
"fieldKey": "confirmSecurityPIN"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "textField",
|
||||||
|
"fieldKey": "preferredFirstName",
|
||||||
|
"type": "text",
|
||||||
|
"text": "",
|
||||||
|
"errorMessage": "Please enter a valid first name.",
|
||||||
|
"title": "Preferred First Name",
|
||||||
|
"feedback": "This will replace greeting name if you have one.",
|
||||||
|
"required": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"moleculeName": "footer",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "twoButtonView",
|
||||||
|
"primaryButton": {
|
||||||
|
"groupName": "default",
|
||||||
|
"moleculeName": "button",
|
||||||
|
"title": "Next",
|
||||||
|
"action": {
|
||||||
|
"analyticsData": {
|
||||||
|
"vzdl.page.linkName": "Legal Disclosure"
|
||||||
|
},
|
||||||
|
"fieldKey": "next",
|
||||||
|
"actionType": "openPage",
|
||||||
|
"extraParameters": {
|
||||||
|
"from": "none"
|
||||||
|
},
|
||||||
|
"presentationStyle": "push",
|
||||||
|
"pageType": "legalDisclosurePR"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"formRules": [
|
||||||
|
{
|
||||||
|
"groupName": "default",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"regex": "^[0-6]{0,4}$",
|
||||||
|
"type": "regex",
|
||||||
|
"fields": [
|
||||||
|
"securityPIN"
|
||||||
|
],
|
||||||
|
"errorMessage": {
|
||||||
|
"securityPIN": "Your PIN can't have numbers in order or repeating."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "equals",
|
||||||
|
"fields": [
|
||||||
|
"securityPIN",
|
||||||
|
"confirmSecurityPIN"
|
||||||
|
],
|
||||||
|
"errorMessage": {
|
||||||
|
"confirmSecurityPIN": "Your account PIN entries don't match. Try again."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"regex": "^[0-9a-zA-Z@\\.\\-\\’_?]{0,25}$",
|
||||||
|
"ruleId": "anyAlphaNumeric",
|
||||||
|
"errorMessage": {
|
||||||
|
"preferredFirstName": "Only use for First Name"
|
||||||
|
},
|
||||||
|
"type": "regex",
|
||||||
|
"fields": [
|
||||||
|
"preferredFirstName"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "allRequired",
|
||||||
|
"ruleId": "requiredRule",
|
||||||
|
"fields": [
|
||||||
|
"securityPIN",
|
||||||
|
"confirmSecurityPIN"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -162,7 +162,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "equals",
|
"type": "equalsIgnoreCase",
|
||||||
"ruleId": "passwordsEqual",
|
"ruleId": "passwordsEqual",
|
||||||
"fields": [
|
"fields": [
|
||||||
"password",
|
"password",
|
||||||
|
|||||||
@ -0,0 +1,142 @@
|
|||||||
|
{
|
||||||
|
"ResponseInfo": {
|
||||||
|
"locale": "EN",
|
||||||
|
"server": "10-74-165-96.ebiz.verizon.com-mf_prepayss01",
|
||||||
|
"userMessage": "0",
|
||||||
|
"code": "00000",
|
||||||
|
"hideNotificationLogo": false,
|
||||||
|
"message": "0",
|
||||||
|
"buildNumber": "124",
|
||||||
|
"type": "Success",
|
||||||
|
"requestId": "2094e7b7-0325-4ca5-93a0-6462b99eb4fa",
|
||||||
|
"topAlertTime": 0
|
||||||
|
},
|
||||||
|
"Page": {
|
||||||
|
"analyticsData": {
|
||||||
|
"vzdl.page.flow": "account",
|
||||||
|
"vzwi.mvmapp.pageType": "planDetailsAEMPR",
|
||||||
|
"vzdl.page.subFlow": "plan details",
|
||||||
|
"vzdl.page.name": "/mf/account/prepaid plans/explore plans/plan details"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"moleculeName": "footer",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "twoButtonView",
|
||||||
|
"primaryButton": {
|
||||||
|
"moleculeName": "button",
|
||||||
|
"action": {
|
||||||
|
"appContext": "mfPrepaySS",
|
||||||
|
"analyticsData": {
|
||||||
|
"vzdl.page.linkName": "Next"
|
||||||
|
},
|
||||||
|
"actionType": "openPage",
|
||||||
|
"presentationStyle": "push",
|
||||||
|
"pageType": "tbd"
|
||||||
|
},
|
||||||
|
"title": "Next",
|
||||||
|
"groupName": "default"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stack": {
|
||||||
|
"moleculeName": "stack",
|
||||||
|
"molecules": [
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "label",
|
||||||
|
"text": "First name"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"spacing": 0,
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "textField",
|
||||||
|
"fieldKey": "Firstname",
|
||||||
|
"text": "",
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "label",
|
||||||
|
"text": "Last name"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"spacing": 0,
|
||||||
|
"moleculeName": "stackItem",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "textField",
|
||||||
|
"fieldKey": "Lastname",
|
||||||
|
"text": "",
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"formRules": [
|
||||||
|
{
|
||||||
|
"groupName": "default",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"regex": "^[a-zA-Z0-9._ ]{0,10}$",
|
||||||
|
"type": "regex",
|
||||||
|
"fields": [
|
||||||
|
"Firstname",
|
||||||
|
"Lastname"
|
||||||
|
],
|
||||||
|
"errorMessage": {
|
||||||
|
"Firstname": "Your first name can only letters, numbers, spaces, and periods.",
|
||||||
|
"Lastname": "Your last name can only letters, numbers, spaces, and periods."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fields": [
|
||||||
|
"Firstname",
|
||||||
|
"Lastname"
|
||||||
|
],
|
||||||
|
"type": "regex",
|
||||||
|
"regex": "^.{3,10}$",
|
||||||
|
"errorMessage": {
|
||||||
|
"Firstname":"Your first name must be between 3-10 characters.",
|
||||||
|
"Lastname": "Your last name must be between 3-10 characters."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "allRequired",
|
||||||
|
"ruleId": "requiredRule",
|
||||||
|
"fields": [
|
||||||
|
"Firstname",
|
||||||
|
"Lastname"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"pageType": "tbd",
|
||||||
|
"cache": false,
|
||||||
|
"screenHeading": "New device Profile",
|
||||||
|
"header": {
|
||||||
|
"moleculeName": "header",
|
||||||
|
"molecule": {
|
||||||
|
"moleculeName": "headlineBody",
|
||||||
|
"headline": {
|
||||||
|
"moleculeName": "label",
|
||||||
|
"text": "Who will be using this device?"
|
||||||
|
},
|
||||||
|
"body": {
|
||||||
|
"moleculeName": "label",
|
||||||
|
"text": "We'll use these details to set up this account."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"template": "stack",
|
||||||
|
"navigationBar": {
|
||||||
|
"moleculeName": "navigationBar",
|
||||||
|
"title": "New device Profile"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,75 +1,67 @@
|
|||||||
////
|
|
||||||
//// WebviewBridgeTrialFraudUserGet.swift
|
|
||||||
//// MobileFirstFramework
|
|
||||||
////
|
|
||||||
//// Created by Matt Bruce on 2/1/22.
|
|
||||||
//// Copyright © 2022 Verizon Wireless. All rights reserved.
|
|
||||||
////
|
|
||||||
//
|
//
|
||||||
//import Foundation
|
// WebviewBridgeTrialFraudUserGet.swift
|
||||||
//import MVMCore
|
// MobileFirstFramework
|
||||||
//
|
//
|
||||||
//extension WebViewBridgeError {
|
// Created by Matt Bruce on 2/1/22.
|
||||||
// static var userCheckICloudNotAvailable = Self.other(code: 150, message: "usercheck_icloud_not_available")
|
// Copyright © 2022 Verizon Wireless. All rights reserved.
|
||||||
// static var userCheckUserDecode = Self.other(code: 151, message: "usercheck_data_decode")
|
|
||||||
// static var userCheckUserEncode = Self.other(code: 152, message: "usercheck_data_encode")
|
|
||||||
// static var userCheckUserSynchronization = Self.other(code: 153, message: "usercheck_data_synchronize")
|
|
||||||
//}
|
|
||||||
//
|
//
|
||||||
//final class WebViewBridgeTrialFraudUserGet: WebViewBridgeHandlerProtocol {
|
|
||||||
//
|
import Foundation
|
||||||
// typealias Model = WebViewBridgeTrialFraudUserGetModel
|
import MVMCore
|
||||||
// typealias ViewController = CoreViewControllerable
|
|
||||||
//
|
extension WebViewBridgeError {
|
||||||
// //properties
|
static var userCheckICloudNotAvailable = Self.other(code: 150, message: "usercheck_icloud_not_available")
|
||||||
// public var bridgeModel: Model!
|
static var userCheckUserDecode = Self.other(code: 151, message: "usercheck_data_decode")
|
||||||
// public var completionHandler: (([String : Any]?) -> Void)!
|
static var userCheckUserEncode = Self.other(code: 152, message: "usercheck_data_encode")
|
||||||
// public weak var viewController: ViewController?
|
static var userCheckUserSynchronization = Self.other(code: 153, message: "usercheck_data_synchronize")
|
||||||
//
|
}
|
||||||
// func runBridgeAction() {
|
|
||||||
//
|
final class WebViewBridgeTrialFraudUserGet: WebViewBridgeHandler<WebViewBridgeTrialFraudUserGetModel, CoreViewControllerable> {
|
||||||
// //current user state, default is iCloud not available
|
|
||||||
// //therefore if bridgeModel.isICloudAvaiable() == false
|
override func perform() {
|
||||||
// //then this state is sent back in the "sendSuccess" and
|
|
||||||
// //this method will NEVER do a "sendError" unless the baseClass throws one
|
//current user state, default is iCloud not available
|
||||||
// var state: TrialFraudUserState = .notAvail
|
//therefore if bridgeModel.isICloudAvaiable() == false
|
||||||
//
|
//then this state is sent back in the "sendSuccess" and
|
||||||
// //return dictionary
|
//this method will NEVER do a "sendError" unless the baseClass throws one
|
||||||
// var result: JSONDictionary = [:]
|
var state: TrialFraudUserState = .notAvail
|
||||||
//
|
|
||||||
// //ensure that iCloud is available for current user
|
//return dictionary
|
||||||
// if bridgeModel.isICloudAvaiable() {
|
var result: JSONDictionary = [:]
|
||||||
//
|
|
||||||
// //keyValueStore hooked up to the user's iCloud account
|
//ensure that iCloud is available for current user
|
||||||
// let keyValStore = NSUbiquitousKeyValueStore()
|
if model.isICloudAvaiable() {
|
||||||
//
|
|
||||||
// //see if there is an existing object set for this user's iCloud account
|
//keyValueStore hooked up to the user's iCloud account
|
||||||
// if let fraudUserData = keyValStore.data(forKey: TrialFraudUser.key) {
|
let keyValStore = NSUbiquitousKeyValueStore()
|
||||||
//
|
|
||||||
// //decode the data into a object
|
//see if there is an existing object set for this user's iCloud account
|
||||||
// guard let fraudUser: TrialFraudUser = try? fraudUserData.decode() else {
|
if let fraudUserData = keyValStore.data(forKey: TrialFraudUser.key) {
|
||||||
// sendError(for: .userCheckUserDecode)
|
|
||||||
// return
|
//decode the data into a object
|
||||||
// }
|
guard let fraudUser: TrialFraudUser = try? fraudUserData.decode() else {
|
||||||
//
|
sendError(for: .userCheckUserDecode)
|
||||||
// //current user state is "Set" since there is an existing value
|
return
|
||||||
// //and the user does have iCloud available
|
}
|
||||||
// state = .set
|
|
||||||
// //get the saved identifier out of the object within iCloud
|
//current user state is "Set" since there is an existing value
|
||||||
// result["userIdentifier"] = fraudUser.identifier
|
//and the user does have iCloud available
|
||||||
//
|
state = .set
|
||||||
// } else {
|
//get the saved identifier out of the object within iCloud
|
||||||
//
|
result["userIdentifier"] = fraudUser.identifier
|
||||||
// //current user state is "Not Set" since there is NOT an existing value
|
|
||||||
// //and the user does have iCloud available
|
} else {
|
||||||
// state = .notSet
|
|
||||||
// }
|
//current user state is "Not Set" since there is NOT an existing value
|
||||||
// }
|
//and the user does have iCloud available
|
||||||
//
|
state = .notSet
|
||||||
// //set the state string value
|
}
|
||||||
// result["state"] = state.rawValue
|
}
|
||||||
//
|
|
||||||
// //execute the completionHandler on the main thread
|
//set the state string value
|
||||||
// sendSuccess(for: result)
|
result["state"] = state.rawValue
|
||||||
// }
|
|
||||||
//}
|
//execute the completionHandler on the main thread
|
||||||
|
sendSuccess(for: result)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -1,38 +1,38 @@
|
|||||||
////
|
|
||||||
//// WebviewBridgeTrialFraudUserGetModel.swift
|
|
||||||
//// MobileFirstFramework
|
|
||||||
////
|
|
||||||
//// Created by Matt Bruce on 2/1/22.
|
|
||||||
//// Copyright © 2022 Verizon Wireless. All rights reserved.
|
|
||||||
////
|
|
||||||
//
|
//
|
||||||
//import Foundation
|
// WebviewBridgeTrialFraudUserGetModel.swift
|
||||||
|
// MobileFirstFramework
|
||||||
//
|
//
|
||||||
//struct TrialFraudUser: Codable {
|
// Created by Matt Bruce on 2/1/22.
|
||||||
// static var key: String { return "trialFraudUser" }
|
// Copyright © 2022 Verizon Wireless. All rights reserved.
|
||||||
// let identifier: String
|
|
||||||
// let date: Date
|
|
||||||
//}
|
|
||||||
//
|
//
|
||||||
//enum TrialFraudUserState: String, Encodable {
|
|
||||||
// case notAvail = "Not Available"
|
import Foundation
|
||||||
// case notSet = "Not Set"
|
|
||||||
// case set = "Set"
|
struct TrialFraudUser: Codable {
|
||||||
//}
|
static var key: String { return "trialFraudUser" }
|
||||||
//
|
let identifier: String
|
||||||
//protocol TrialFraudUserModelProtocol {}
|
let date: Date
|
||||||
//
|
}
|
||||||
//extension TrialFraudUserModelProtocol {
|
|
||||||
// func isICloudAvaiable() -> Bool {
|
enum TrialFraudUserState: String, Encodable {
|
||||||
// guard let _ = FileManager.default.ubiquityIdentityToken else {
|
case notAvail = "Not Available"
|
||||||
// return false
|
case notSet = "Not Set"
|
||||||
// }
|
case set = "Set"
|
||||||
// return true
|
}
|
||||||
// }
|
|
||||||
//}
|
protocol TrialFraudUserModelProtocol {}
|
||||||
//
|
|
||||||
//class WebViewBridgeTrialFraudUserGetModel: WebviewBridgeModelProtocol, TrialFraudUserModelProtocol {
|
extension TrialFraudUserModelProtocol {
|
||||||
//
|
func isICloudAvaiable() -> Bool {
|
||||||
// static var identifier: String = "trialFraudUserCheckGet"
|
guard let _ = FileManager.default.ubiquityIdentityToken else {
|
||||||
// var jsCallback: String?
|
return false
|
||||||
//}
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class WebViewBridgeTrialFraudUserGetModel: WebviewBridgeModelProtocol, TrialFraudUserModelProtocol {
|
||||||
|
|
||||||
|
static var identifier: String = "trialFraudUserCheckGet"
|
||||||
|
var jsCallback: String?
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user