Files
hv-cron/monatliche-forderung-ueberwachen.py
2021-02-22 19:11:42 +01:00

45 lines
1.4 KiB
Python
Executable File

#!/usr/bin/python3
import requests
import datetime
from Cheetah.Template import Template
class ResourceNotFoundException(Exception): pass
def getJson(url):
resp = requests.get(url)
if resp.status_code != 200:
raise ResourceNotFoundException("URL: {}, Code: {}".format(url, resp.status_code))
return resp.json()
BASE_URL = "http://172.16.10.29:5000/hv"
URL_MIETERS_ACTIVE = "{base}/mieters/active"
URL_SALDO_BY_MIETER = "{base}/mieter/{mieterId}/saldo/{year}"
REPORT_THRESHOLD = 0.5
TEMPLATE_FILE = "report.tmpl"
CURRENT_YEAR = datetime.datetime.now().year
try:
activeMieters = getJson(URL_MIETERS_ACTIVE.format(base=BASE_URL))
mieters = [ { 'vorname': x['vorname'], 'nachname': x['nachname'], 'id': x['id'] } for x in activeMieters ]
mietersToReport = []
for mieter in mieters:
saldoByMieter = getJson(URL_SALDO_BY_MIETER.format(base=BASE_URL, mieterId=mieter['id'], year=CURRENT_YEAR))
if abs(saldoByMieter['saldo']) > REPORT_THRESHOLD:
mietersToReport.append({
'vorname': mieter['vorname'],
'nachname': mieter['nachname'],
'saldo': "{:.2f}".format(saldoByMieter['saldo'])
})
if mietersToReport:
params = { 'mietersToReport': mietersToReport }
report = Template(file=TEMPLATE_FILE, searchList=[ params ])
print(report)
except Exception as e:
print("ERROR: {}".format(e))