feat: Add support for LogFilterData in logs template

This commit is contained in:
stone-24tch3r (aider)
2024-09-27 14:08:12 +05:00
parent 0b30fdf769
commit d021a67084

View File

@@ -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__":