62 lines
1.6 KiB
Python
62 lines
1.6 KiB
Python
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,
|
||
},
|
||
)
|