Files
choriosity-anmeldung/app/main.py
2025-05-27 10:56:48 +02:00

68 lines
1.8 KiB
Python

from fastapi import FastAPI, Request
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from app.api.main import api_router
from app.core.config import settings
from app.core.db import init_db, engine
from sqlmodel import Session
from app.core.utils import is_registration_open
with Session(engine) as session:
init_db(session)
app = FastAPI(
title=settings.PROJECT_NAME, openapi_url=f"{settings.API_V1_STR}/openapi.json"
)
templates = Jinja2Templates(directory="app/templates")
@api_router.get("/")
def index(request: Request):
reg_open, not_before, not_after = is_registration_open()
if reg_open:
return templates.TemplateResponse(
request=request, name="registration-open.html", context={}
)
elif not_before:
return templates.TemplateResponse(
request=request,
name="registration-closed.html",
context={
"not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER,
},
)
elif not_after:
return templates.TemplateResponse(
request=request,
name="registration-not-open.html",
context={
"not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER,
},
)
@api_router.get("/success.html")
def success(request: Request):
return templates.TemplateResponse(
request=request,
name="registration-success.html",
context={
"not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER,
},
)
app.include_router(api_router, prefix=settings.API_V1_STR)
app.mount("/static", StaticFiles(directory="app/static"), name="static")