bill-data-api / app.py
NirmitSachde's picture
Create app.py
9ee4216 verified
raw
history blame contribute delete
848 Bytes
from fastapi import FastAPI, Header, HTTPException
from fastapi.middleware.cors import CORSMiddleware
import json, os
app = FastAPI()
app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
DATA_FILE = "/data/billdata.json"
API_KEY = os.environ.get("API_KEY", "changeme")
os.makedirs("/data", exist_ok=True)
def auth(key):
if key != API_KEY:
raise HTTPException(401, "bad key")
@app.get("/data")
def getData(x_api_key: str = Header()):
auth(x_api_key)
if not os.path.exists(DATA_FILE):
return {"providers": [], "receivers": [], "settings": {}}
return json.loads(open(DATA_FILE).read())
@app.post("/data")
def saveData(body: dict, x_api_key: str = Header()):
auth(x_api_key)
with open(DATA_FILE, "w") as f:
json.dump(body, f)
return {"status": "ok"}