web/server/handlers/misc.py
2024-07-20 15:14:00 +05:00

37 lines
1.1 KiB
Python

from loguru import logger
from pydantic import BaseModel
from fastapi.responses import JSONResponse
from server import config, ban_db, medium_parser
from server.utils.notify import send_message
from server.utils.logger_trace import trace
class ReportProblem(BaseModel):
page: str
description: str
class DeleteFromCache(BaseModel):
key: str
ADMIN_SECRET_KEY: str
@trace
async def report_problem(problem: ReportProblem):
send_message(f"New problem report: \n{problem.description}\n\n{problem.page}")
return JSONResponse({"message": "OK"}, status_code=200)
@trace
async def delete_from_cache(key_data: DeleteFromCache):
if key_data.ADMIN_SECRET_KEY != config.ADMIN_SECRET_KEY:
return JSONResponse({"message": f"Wrong secret key: {key_data.ADMIN_SECRET_KEY}"}, status_code=403)
try:
await medium_parser.delete_from_cache(key_data.key)
except Exception as ex:
logger.exception(ex)
return JSONResponse({"message": f"Couldn't delete from cache: {ex}"}, status_code=500)
else:
ban_db.set(key_data.key, 1)
return JSONResponse({"message": "OK"}, status_code=200)