Добавил условие, если массив от API пустой, то 404, вернул старую логику /wallpaper/today

This commit is contained in:
Данил 2024-10-23 17:01:10 +03:00
parent 035cf23197
commit c9dd20dbb7

View file

@ -1,10 +1,9 @@
from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse, FileResponse, RedirectResponse
from fastapi.templating import Jinja2Templates
from http import HTTPStatus
import requests
from datetime import datetime
from http import HTTPStatus
from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse, FileResponse
from fastapi.templating import Jinja2Templates
router = APIRouter()
@ -13,23 +12,27 @@ template = Jinja2Templates(directory='./src/web/html')
@router.get('/wallpaper/today', response_class=HTMLResponse)
async def today_wallpaper(request: Request):
date = datetime.today().strftime('%Y-%m-%d')
res = requests.get(f'https://api.starlio.space/last')
if HTTPStatus(res.status_code).is_server_error or \
HTTPStatus(res.status_code).is_client_error:
return FileResponse('./src/web/html/error/404.html')
return RedirectResponse(f'/wallpaper/{date}')
@router.get('/wallpaper/{day}', response_class=HTMLResponse)
async def wallpaper(request: Request, day):
res = requests.get(f'https://api.starlio.space/wallpaper/{day}')
if HTTPStatus(res.status_code).is_server_error or \
HTTPStatus(res.status_code).is_client_error:
return FileResponse('./src/web/html/error/404.html')
if HTTPStatus(res.status_code).is_server_error or HTTPStatus(res.status_code).is_client_error:
return FileResponse('../web/html/error/404.html', status_code=HTTPStatus.NOT_FOUND)
return template.TemplateResponse(
request,
'/wallpaper.html',
{'info': res.json()}
)
@router.get('/wallpaper/{day}', response_class=HTMLResponse)
async def wallpaper(request: Request, day):
res = requests.get(f'https://api.starlio.space/wallpaper/{day}')
if (HTTPStatus(res.status_code).is_server_error
or HTTPStatus(res.status_code).is_client_error
or len(res.json()) <= 0):
return FileResponse('./src/web/html/error/404.html', status_code=HTTPStatus.NOT_FOUND)
return template.TemplateResponse(
request,