#!/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))