import json import atexit import datetime from flask import Flask, jsonify, request DB_FILE = "vacation.db" last_update = datetime.datetime.now() app = Flask(__name__) app.config["APPLICATION_ROOT"] = "/vacation/api" app.url_map.strict_slashes = False with open(DB_FILE) as infile: db = json.load(infile) @atexit.register def save_db(prefix=""): with open(prefix + DB_FILE, "w") as outfile: json.dump(db, outfile) def backup_db(): save_db(f"backup-{datetime.datetime.now().isoformat()}-") @app.route("/") def health(): return jsonify({"status": "healthy"}) @app.route("/status", methods=["GET", "POST"]) def status(): if request.method == "GET": return jsonify({ "lastUpdated": last_update.iso_format(), "availability": [ { "name": name, "availability": avail, } for name, avail in db.items() ], }) body = request.get_json() print(body) last_update = datetime.datetime.now() # TODO actually implement updates return 204, ""