2024-09-13 05:28:09 +00:00
|
|
|
import psycopg2
|
|
|
|
from generate import on_load
|
2024-09-10 04:14:09 +00:00
|
|
|
from fastapi import FastAPI, Response
|
2024-09-10 05:20:11 +00:00
|
|
|
from routes.auth import router as auth
|
2024-09-13 05:28:09 +00:00
|
|
|
from contextlib import asynccontextmanager
|
2024-10-20 10:02:23 +00:00
|
|
|
from util.config import conn_param, db_url
|
2024-09-10 05:20:11 +00:00
|
|
|
from routes.balance import router as balance
|
2024-09-10 12:20:03 +00:00
|
|
|
from fastapi.middleware.cors import CORSMiddleware
|
2024-09-10 01:31:17 +00:00
|
|
|
|
2024-09-13 05:28:09 +00:00
|
|
|
@asynccontextmanager
|
|
|
|
async def lifespan(app: FastAPI):
|
|
|
|
conn = psycopg2.connect(conn_param)
|
|
|
|
cur = conn.cursor()
|
|
|
|
|
|
|
|
try:
|
|
|
|
print("loading database for: %s" % db_url())
|
|
|
|
on_load(conn, cur)
|
|
|
|
except:
|
|
|
|
print("[warn] error occurred while creating table. aborted")
|
|
|
|
finally:
|
|
|
|
cur.close()
|
|
|
|
conn.close()
|
|
|
|
|
|
|
|
yield
|
|
|
|
|
|
|
|
app = FastAPI(lifespan=lifespan)
|
2024-09-10 01:31:17 +00:00
|
|
|
|
2024-09-10 12:20:03 +00:00
|
|
|
app.add_middleware(
|
|
|
|
CORSMiddleware,
|
2024-09-10 12:23:22 +00:00
|
|
|
allow_origins=["*"],
|
2024-09-10 12:22:01 +00:00
|
|
|
allow_credentials=True,
|
2024-09-10 16:42:29 +00:00
|
|
|
allow_methods=["*"],
|
2024-09-10 12:20:03 +00:00
|
|
|
allow_headers=["*"]
|
|
|
|
)
|
|
|
|
|
2024-09-10 04:14:09 +00:00
|
|
|
@app.get("/")
|
2024-09-13 05:28:09 +00:00
|
|
|
async def index(resp: Response):
|
2024-09-10 04:14:09 +00:00
|
|
|
resp.headers.setdefault("Content-Type", "text")
|
2024-09-10 01:31:17 +00:00
|
|
|
return "Hello, World!"
|
|
|
|
|
2024-09-10 05:20:11 +00:00
|
|
|
app.include_router(router=auth)
|
2024-10-20 10:02:23 +00:00
|
|
|
app.include_router(router=balance)
|