Add base controller, catch controller, and history controller

This commit is contained in:
sha
2024-03-22 00:48:46 +02:00
parent f6b750247c
commit ca6c933fd9
3 changed files with 124 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
from fastapi import Request, Response, status
from schema.answer import Answer
from controller.base_controller import BaseController
from datetime import datetime
from manager.history import History
from schema.status import Status
class CatchController(BaseController):
async def catch(
self,
request: Request,
response: Response,
namespace: str = "requests",
) -> Answer:
if not self.check_namespace(namespace):
response.status_code = status.HTTP_400_BAD_REQUEST
return Answer(
status=Status.error, message="Invalid namespace name provided."
)
try:
json = await request.json()
except Exception:
json = {"invalid": "json"}
last_request = {
"data": json,
"method": request.method,
"url": str(request.url),
"headers": dict(request.headers),
"time": datetime.now().isoformat(),
}
history = History(namespace)
history.add(last_request)
return Answer(status=Status.ok, message="Request was catched.")