From d60bd62a24c3ffccd38ffd971695aa909ccc1c33 Mon Sep 17 00:00:00 2001 From: Rahul Kantesaria Date: Wed, 10 Apr 2019 14:11:31 -0400 Subject: [PATCH] SWE-13 Integration of UserDefaults+Extension as the getter for bankAcctInfo from UserDefaults in updating the selected bank account label as well as passing bankId in submit payment --- .../Base.lproj/Interface.storyboard | 10 +++++----- .../PaymentDetailInterfaceController.swift | 17 +++++++++++------ .../project.pbxproj | 4 ++-- .../UserDefaults+Extensions.swift | 9 +++++++-- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard index c076878..59e3649 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -267,7 +267,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -316,7 +316,7 @@ - + @@ -356,7 +356,7 @@ - + @@ -375,7 +375,7 @@ - + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift index a429c0f..8d4c9be 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift @@ -51,12 +51,11 @@ class PaymentDetailInterfaceController: WKInterfaceController { let type: PaymentType = self.paymentAmount == self.selectedAccount?.curBalance ? .currentBal : .minimumDue // process this payment using default bank account (9999) until ability to change account is implemented - guard let bankacct = UserDefaults.standard.dictionary(forKey: "default_bank_acct") as? [String: String], - let bankID = bankacct["bankAcctId"] else { - NSLog("Error retrieving Payment Option") - return + guard let bankacct = UserDefaults.standard.getDefaultBankAccount() else { + NSLog("Error retrieving Payment Option") + return } - FetchData.submitPayment(for: alias, type: type, amount: self.paymentAmount, bankID: bankID) { confirmationNum, paymentID, error in + FetchData.submitPayment(for: alias, type: type, amount: self.paymentAmount, bankID: bankacct.bankAcctId) { confirmationNum, paymentID, error in guard error == nil else { let dismiss = WKAlertAction(title: "Dismiss", style: .cancel, handler: {}) self.presentAlert(withTitle: "Error", message: "We were unable to process your payment at this time. Please try again later.", preferredStyle: .alert, actions: [dismiss]) @@ -101,9 +100,15 @@ class PaymentDetailInterfaceController: WKInterfaceController { override func willActivate() { // This method is called when watch view controller is about to be visible to user super.willActivate() - if let bankacct = UserDefaults.standard.dictionary(forKey: "default_bank_acct") as? [String: String] { + /*if let bankacct = UserDefaults.standard.dictionary(forKey: "default_bank_acct") as? [String: String] { detailButton.setTitle(bankacct["bankName"]) + }*/ + //let userDefaults = UserDefaults.standard + guard let bankacct = UserDefaults.standard.getDefaultBankAccount() else { + NSLog("Error recieving default bank account in Payment Details Controller") + return } + detailButton.setTitle(bankacct.bankName) } override func didDeactivate() { diff --git a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj index 76e8ade..d8888b9 100644 --- a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj +++ b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj @@ -222,6 +222,7 @@ 67293CF022542F15009E0E7A /* TransactionDetailsInterfaceController.swift */, 674BD1522239A39D0076AFD6 /* PayBillInterfaceController.swift */, 481864A7224802BB0059CF7A /* PaymentDetailInterfaceController.swift */, + 112969412257B8920082AAC5 /* PaymentOptionsInterfaceController.swift */, 676392B322429DC800740A8C /* TransactionsInterfaceController.swift */, 673F396C21A644460051469E /* MainMenuInterfaceController.swift */, 67228CD7224D6E2700CA29E4 /* WKInterfaceImage+Extensions.swift */, @@ -231,10 +232,9 @@ 67BAC291219E254900713FEF /* Assets.xcassets */, 48DA0057221D12E70081A500 /* AccountCell.swift */, 676392B52242A3F800740A8C /* TransactionCell.swift */, + 112B56502257C3D9003E9C78 /* BankAcctCell.swift */, 67BAC293219E254900713FEF /* Info.plist */, 1123372D223ABD6400B70925 /* FetchData.swift */, - 112969412257B8920082AAC5 /* PaymentOptionsInterfaceController.swift */, - 112B56502257C3D9003E9C78 /* BankAcctCell.swift */, ); path = "SynchronyFinancial WatchKit Extension"; sourceTree = ""; diff --git a/SynchronyFinancial/SynchronyFinancial/UserDefaults+Extensions.swift b/SynchronyFinancial/SynchronyFinancial/UserDefaults+Extensions.swift index 1442999..5bd14ae 100644 --- a/SynchronyFinancial/SynchronyFinancial/UserDefaults+Extensions.swift +++ b/SynchronyFinancial/SynchronyFinancial/UserDefaults+Extensions.swift @@ -14,8 +14,13 @@ extension UserDefaults { } func getDefaultBankAccount() -> BankAcct? { - if let bank = UserDefaults.standard.value(forKey: "default_bank_acct") as? BankAcct { - return bank + if let bankDict = UserDefaults.standard.value(forKey: "default_bank_acct") as? [String: String], + let bankAcctId = bankDict["bankAcctId"], + let acctTypeRaw: String = bankDict["acctType"], + let bankName = bankDict["bankName"], + let last4Acct = bankDict["last4Acct"], + let acctType: AccountType = AccountType(rawValue: acctTypeRaw) { + return BankAcct(bankAcctId: bankAcctId, acctType: acctType, bankName: bankName, last4Acct: last4Acct) } return nil }