diff --git a/front/main.py b/front/main.py index 5a51962..3c275a6 100644 --- a/front/main.py +++ b/front/main.py @@ -1,9 +1,11 @@ -from fastapi import FastAPI, Request +from fastapi import FastAPI, Request, Query from fastapi.templating import Jinja2Templates from fastapi.staticfiles import StaticFiles from fastapi.responses import HTMLResponse +from typing import List, Optional +from datetime import date -from front.template_models import CertificateData, LogData +from front.template_models import CertificateData, LogData, LogFilterData app = FastAPI() @@ -16,14 +18,31 @@ templates = Jinja2Templates(directory="templates") async def read_dashboard(request: Request): certificates = [ CertificateData(id="123", name="cert1", status="active", actions=["View", "Renew"]), - CertificateData(id="123", name="cert1", status="active", actions=["View", "Renew"]), - CertificateData(id="123", name="cert1", status="active", actions=["View", "Renew"]), + CertificateData(id="456", name="cert2", status="expired", actions=["View", "Renew"]), + CertificateData(id="789", name="cert3", status="active", actions=["View", "Renew"]), ] return templates.TemplateResponse("dashboard.html.j2", {"request": request, "certificates": certificates}) @app.get("/logs", response_class=HTMLResponse) -async def read_logs(request: Request): +async def read_logs( + request: Request, + commands_only: bool = Query(False), + date_from: Optional[date] = Query(None), + date_to: Optional[date] = Query(None), + keywords: Optional[str] = Query(None), + severity: List[str] = Query(["INFO", "WARN", "DEBUG", "ERROR"]) +): + filter_data = LogFilterData( + commands_only=commands_only, + date_from=date_from, + date_to=date_to, + keywords=keywords, + severity=severity + ) + + # Here you would typically use the filter_data to query your logs + # For now, we'll just use the sample logs logs = [ LogData( entry_id="1ab2", @@ -40,7 +59,7 @@ async def read_logs(request: Request): trace_id="111" ), ] - return templates.TemplateResponse("logs.html.j2", {"request": request, "logs": logs}) + return templates.TemplateResponse("logs.html.j2", {"request": request, "logs": logs, "filter_data": filter_data}) if __name__ == "__main__":