+class transaction(object):
+ def __init__(self, account, data):
+ self.account = account
+ self._data = data
+
+ @property
+ def amount(self): return float(resolve(self._data, ("amount",)))
+ @property
+ def message(self): return resolve(self._data, ("details", "message"))
+
+ def __repr__(self):
+ return "#<fsb.transaction %.2f: %r>" % (self.amount, self.message)
+
+class account(object):
+ def __init__(self, sess, id, idata):
+ self.sess = sess
+ self.id = id
+ self._data = None
+ self._idata = idata
+
+ @property
+ def data(self):
+ if self._data is None:
+ self._data = self.sess._jreq("v5/engagement/account/" + self.id)
+ return self._data
+
+ @property
+ def number(self): return resolve(self.data, ("accountNumber",))
+ @property
+ def clearing(self): return resolve(self.data, ("clearingNumber",))
+ @property
+ def fullnumber(self): return resolve(self.data, ("fullyFormattedNumber",))
+ @property
+ def name(self): return resolve(self._idata, ("name",))
+
+ def transactions(self):
+ pagesz = 50
+ data = self.sess._jreq("v5/engagement/transactions/" + self.id, transactionsPerPage=pagesz, page=1)
+ for tx in resolve(data, ("transactions",)):
+ yield transaction(self, tx)
+
+ def __repr__(self):
+ return "#<fsb.account %s: %r>" % (self.fullnumber, self.name)
+