# Part of accounting-api project:
# https://gitorious.org/conservancy/accounting-api
# License: AGPLv3-or-later
from datetime import datetime
from flask import json
from accounting.models import Amount, Transaction, Posting, Account
class AccountingEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, Account):
return dict(
__type__=o.__class__.__name__,
name=o.name,
amounts=o.amounts,
accounts=o.accounts
)
elif isinstance(o, Transaction):
id=o.id,
date=o.date.strftime('%Y-%m-%d'),
payee=o.payee,
postings=o.postings,
metadata=o.metadata