Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
SWE-24 change context type to support passing account
- we require the `accountAlias` of the current account in order to cancel a payment
- changed the type of dictionary passed through Transactions functionality to support getting the account to transaction details, so we can ultimate use to cancel a pending payment
  • Loading branch information
ahm11003 committed Apr 8, 2019
1 parent 99e5d21 commit 143ffe2
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
Expand Up @@ -12,7 +12,7 @@ import Foundation
class AccountDetailsInterfaceController: WKInterfaceController {
var selectedAccount: Account?
var dictForAcct: [String: Account] = [:]
var transactionDict: [String: [Transaction]] = [:]
var transactionDict: [String: Any] = [:]

@IBOutlet var loadingLabel: WKInterfaceLabel!
@IBOutlet var activityIndicator: WKInterfaceImage!
Expand Down Expand Up @@ -41,6 +41,9 @@ class AccountDetailsInterfaceController: WKInterfaceController {
return
}

if let acct = self.selectedAccount {
self.transactionDict.updateValue(acct, forKey: "acct")
}
self.transactionDict.updateValue(transactions, forKey: "transactions")
self.pushController(withName: "Transactions", context: self.transactionDict)
self.configureInterfaceObjects(false)
Expand Down
Expand Up @@ -14,19 +14,22 @@ class TransactionDetailsInterfaceController: WKInterfaceController {
@IBOutlet var dateLabel: WKInterfaceLabel!
@IBOutlet var amountLabel: WKInterfaceLabel!
@IBOutlet var cancelButton: WKInterfaceButton!
var account: Account?
override func awake(withContext context: Any?) {
super.awake(withContext: context)

guard let data = context as? [String: Any],
let transaction = data["transaction"] as? Transaction,
let merchant = data["merchant"] as? String,
let date = data["date"] as? Date,
let amount = data["amount"] as? Double else {
let amount = data["amount"] as? Double,
let acct = data["acct"] as? Account else {
NSLog("Error receiving context in TransactionDetails.")
return
}

setTitle("Dismiss")
account = acct
transactionName.setText(merchant)
dateLabel.setText("Date: \(DateFormatter.localizedString(from: date, dateStyle: .short, timeStyle: .none))")
amountLabel.setText(String(format: "Amount: $%.2f", amount))
Expand Down
Expand Up @@ -12,15 +12,19 @@ import Foundation
class TransactionsInterfaceController: WKInterfaceController {
@IBOutlet weak var transactionsTable: WKInterfaceTable!
var transactions: [Transaction] = []
var account: Account?

override func awake(withContext context: Any?) {
super.awake(withContext: context)

guard let data = context as? [String: [Transaction]], let trans = data["transactions"] else {
NSLog("Error receiving context containing transactions in TransactionsInterfaceController")
return
guard let data = context as? [String: Any],
let trans = data["transactions"] as? [Transaction],
let acct = data["acct"] as? Account else {
NSLog("Error receiving context containing transactions in TransactionsInterfaceController")
return
}

account = acct
transactions = trans
configureRows()
}
Expand All @@ -36,11 +40,13 @@ class TransactionsInterfaceController: WKInterfaceController {
}

override func table(_ table: WKInterfaceTable, didSelectRowAt rowIndex: Int) {
guard let acct = account else { return }
let transaction = transactions[rowIndex]
let context: [String: Any] = ["transaction": transaction,
"merchant": transaction.merchantID,
"date": transaction.date,
"amount": transaction.amount]
"amount": transaction.amount,
"acct": acct]

presentController(withName: "TransactionDetails", context: context)
}
Expand Down

0 comments on commit 143ffe2

Please sign in to comment.