From 340ff5270ef36483207ea049f16ce7ab88805263 Mon Sep 17 00:00:00 2001 From: chris Date: Sun, 1 Nov 2020 01:03:40 +0100 Subject: [PATCH] move helpers --- firefly/__init__.py | 14 ++++++++++++++ firefly/budgets.py | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/firefly/__init__.py b/firefly/__init__.py index e69de29..286c8b7 100644 --- a/firefly/__init__.py +++ b/firefly/__init__.py @@ -0,0 +1,14 @@ +"""Firefly3 API modules""" +import datetime +import calendar + + +def get_remaining_days(): + """Get number of days remaining in current month""" + today = datetime.datetime.combine( + datetime.date.today(), datetime.datetime.min.time() + ) + endofmonth = today.replace( + day=calendar.monthrange(today.year, today.month)[1] + ) + return (endofmonth - today).days + 1 diff --git a/firefly/budgets.py b/firefly/budgets.py index e3f3b45..5f7fe1b 100644 --- a/firefly/budgets.py +++ b/firefly/budgets.py @@ -6,6 +6,8 @@ import datetime import requests import dateutil.parser +import firefly + header = {"Authorization": "Bearer " + os.environ.get('FIREFLY_PERSONAL_ACCESS_TOKEN')} host = os.environ.get('FIREFLY_API_HOST') @@ -70,6 +72,22 @@ def _get_current_spent_amount(budget_id): return spent_amount +def _collect_budget_data(): + budgets = [] + for budget in _get_budgets(): + budgets.append({ + "id": budget.get('id'), + "name": budget.get('attributes').get('name'), + "limit": _get_current_limit(budget.get('id')).get('attributes').get('amount'), + "spent": _get_current_spent_amount(budget.get('id')), + }) + currbudget = budgets[-1] + currbudget['remaining'] = (float(currbudget.get('limit')) - float(currbudget.get('spent'))) + remaining_per_day = currbudget.get('remaining') / firefly.get_remaining_days() + currbudget['remaining_per_day'] = 0 if remaining_per_day < 0 else remaining_per_day + return budgets + + def get_budget_metrics(): out = "" for budget in _get_budgets():