Files
@ dd260aa02127
Branch filter:
Location: NPO-Accounting/experimental-accounting-api/accounting/web.py - annotation
dd260aa02127
1.3 KiB
text/x-python
Move stdout processing into send_command
f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d dd260aa02127 f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d f8f51f74897d dd260aa02127 f8f51f74897d f8f51f74897d f8f51f74897d | import logging
from flask import Flask, g, jsonify, json
from accounting import Ledger, Account, Posting, Transaction
logging.basicConfig(level=logging.DEBUG)
app = Flask('accounting')
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
)
elif isinstance(o, Transaction):
return dict(
date=o.date.strftime('%Y-%m-%d'),
payee=o.payee,
postings=o.postings
)
elif isinstance(o, Posting):
return dict(
account=o.account,
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()
return jsonify(register_report=report_data)
def main():
app.run(host=app.config['HOST'], port=app.config['PORT'])
if __name__ == '__main__':
main()
|