netadm/web/router.py

62 lines
1.6 KiB
Python
Raw Normal View History

2024-10-01 14:09:19 +00:00
from fastapi import APIRouter, Form
from starlette.requests import Request
from starlette.responses import HTMLResponse
from starlette.templating import Jinja2Templates
from fastapi.openapi.docs import get_swagger_ui_html
from config import settings
from config import TEMPLATES_DIR
from scripts.сheck_available_ports import start_check
router = APIRouter(
tags=["Web"],
)
templates = Jinja2Templates(directory=TEMPLATES_DIR)
@router.get("/web/check_ports", response_class=HTMLResponse)
async def check_ports(request: Request):
return templates.TemplateResponse(
"body-check_ports.html",
{
"request": request,
},
)
@router.get("/web/start_check_ports")
async def start_check_ports(request: Request, inputText: str):
results = start_check(inputText, result_type="test")
return templates.TemplateResponse(
"body-check_ports.html",
{
"request": request,
"results": results,
},
)
@router.get("/docs", include_in_schema=False)
async def custom_swagger_ui_html():
return get_swagger_ui_html(
openapi_url=settings.swagger.openapi_url,
title=settings.swagger.title,
oauth2_redirect_url=settings.swagger.oauth2_redirect_url,
swagger_js_url=settings.swagger.swagger_js_url,
swagger_css_url=settings.swagger.swagger_css_url,
swagger_favicon_url=settings.swagger.swagger_favicon_url,
)
@router.get("/", response_class=HTMLResponse)
async def start_page(request: Request):
return templates.TemplateResponse(
"base.html",
{
"request": request,
},
)