|
|
|
@ -3,6 +3,7 @@ import os
|
|
|
|
|
import calendar
|
|
|
|
|
import datetime
|
|
|
|
|
|
|
|
|
|
import pytz
|
|
|
|
|
import requests
|
|
|
|
|
import dateutil.parser
|
|
|
|
|
|
|
|
|
@ -12,9 +13,10 @@ host = os.environ.get('FIREFLY_API_HOST')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _get_budgets():
|
|
|
|
|
budgets_json = requests.get(
|
|
|
|
|
budgets_req = requests.get(
|
|
|
|
|
host + "/api/v1/budgets", headers=header
|
|
|
|
|
).json()
|
|
|
|
|
)
|
|
|
|
|
budgets_json = budgets_req.json()
|
|
|
|
|
budgets = budgets_json.get('data')
|
|
|
|
|
while "next" in budgets_json.get('links'):
|
|
|
|
|
budgets_json = requests.get(
|
|
|
|
@ -35,7 +37,7 @@ def _get_current_limit(budget_id):
|
|
|
|
|
).json()
|
|
|
|
|
budgets.extend(budget_json.get('data'))
|
|
|
|
|
|
|
|
|
|
today = datetime.datetime.combine(datetime.date.today(), datetime.datetime.min.time())
|
|
|
|
|
today = datetime.datetime.combine(datetime.date.today(), datetime.datetime.min.time()).replace(tzinfo=pytz.UTC)
|
|
|
|
|
return [
|
|
|
|
|
budget for budget in budgets
|
|
|
|
|
if today >= dateutil.parser.parse(budget.get('attributes').get('start')) and today <= dateutil.parser.parse(budget.get('attributes').get('end'))
|
|
|
|
@ -44,11 +46,13 @@ def _get_current_limit(budget_id):
|
|
|
|
|
|
|
|
|
|
def _get_current_transactions(budget_id):
|
|
|
|
|
limit_id = _get_current_limit(budget_id).get('id')
|
|
|
|
|
transactions_json = requests.get(
|
|
|
|
|
host + "/api/v1/budgets/limits/{}/transactions".format(
|
|
|
|
|
transactions_req = requests.get(
|
|
|
|
|
host + "/api/v1/budgets/{}/limits/{}/transactions".format(
|
|
|
|
|
budget_id,
|
|
|
|
|
limit_id
|
|
|
|
|
), headers=header
|
|
|
|
|
).json()
|
|
|
|
|
)
|
|
|
|
|
transactions_json = transactions_req.json()
|
|
|
|
|
transactions = transactions_json.get('data')
|
|
|
|
|
while 'next' in transactions_json:
|
|
|
|
|
transactions_json = requests.get(
|
|
|
|
|