12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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, ""
|