Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
SWF-21 preliminary fetch function for transactions
- when an account is tapped from `AccountsTableViewInterfaceController`, we will grab the `accountAlias` and pass to this function
  • Loading branch information
ahm11003 committed Mar 28, 2019
1 parent c4cc995 commit 21d742c
Showing 1 changed file with 33 additions and 0 deletions.
Expand Up @@ -74,4 +74,37 @@ class FetchData {
}
}
}

static func fetchTransactionsFor(accountAlias: String, completion: @escaping ([Transaction], Error?) -> Void) {
// get the transaction header and set value for account alias to the selected account
var header = Defaults.headerForTransaction
header["account_alias"] = accountAlias
var transactions: [Transaction] = []
let formatter = DateFormatter()
formatter.locale = Locale.current
formatter.dateFormat = "yyyyMMdd"

Alamofire.request(Defaults.TRANS_HISTORY_URL, method: .post, parameters: header, encoding: JSONEncoding.default, headers: Defaults.authHeader).responseJSON { payload in
switch payload.result {
case .success(let value):
let dict = JSON(value).dictionaryValue
guard dict["status"]?.dictionaryValue["response_code"]?.string == "0" else { return }

// let's parse just processed transactions for now
dict["processed_transaction_list"]?.arrayValue.forEach {
if let desc = $0["description"].string,
let date = formatter.date(from: $0["transaction_date"].stringValue),
let amountString = $0["transaction_amount"].string,
let amount = Double(amountString) {
let type: TransactionType = $0["payment_amount_type"].stringValue == "" ? .purchase : .reimbursement
transactions.append(Transaction(type: type, amount: amount, merchantID: desc, date: date))
}
}
completion(transactions, nil)
case .failure(let error):
NSLog("Error: %s", error.localizedDescription)
completion([], error)
}
}
}
}

0 comments on commit 21d742c

Please sign in to comment.