diff --git a/accounting/web.py b/accounting/web.py index 4b155423823721dcdc18fa9d460e93d5f3606d2f..c3e1d8f58d9f5f700868e51b8135e0ecc82136f2 100644 --- a/accounting/web.py +++ b/accounting/web.py @@ -2,7 +2,7 @@ import logging from flask import Flask, g, jsonify, json -from accounting import Ledger, Account, Posting, Transaction +from accounting import Ledger, Account, Posting, Transaction, Amount logging.basicConfig(level=logging.DEBUG) @@ -11,12 +11,14 @@ app.config.from_pyfile('config.py') ledger = Ledger(ledger_file=app.config['LEDGER_FILE']) + class AccountingEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, Account): return dict( name=o.name, - balance=o.balance + amounts=o.amounts, + accounts=o.accounts ) elif isinstance(o, Transaction): return dict( @@ -28,23 +30,31 @@ class AccountingEncoder(json.JSONEncoder): return dict( account=o.account, amount=o.amount, + ) + elif isinstance(o, Amount): + return dict( + amount=o.amount, symbol=o.symbol ) return json.JSONEncoder.default(self, o) + app.json_encoder = AccountingEncoder + @app.route('/') def index(): return 'Hello World!' + @app.route('/balance') def balance_report(): report_data = ledger.bal() return jsonify(balance_report=report_data) + @app.route('/register') def register_report(): report_data = ledger.reg()