diff options
Diffstat (limited to 'backend/routes/forms/new.py')
-rw-r--r-- | backend/routes/forms/new.py | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/backend/routes/forms/new.py b/backend/routes/forms/new.py deleted file mode 100644 index 6437a4a..0000000 --- a/backend/routes/forms/new.py +++ /dev/null @@ -1,35 +0,0 @@ -""" -Creates new form based on data provided. -""" -from pydantic import ValidationError -from starlette.authentication import requires -from starlette.requests import Request -from starlette.responses import JSONResponse - -from backend.models import Form -from backend.route import Route - - -class FormCreate(Route): - """ - Creates new form from JSON data. - """ - - name = "forms_create" - path = "/new" - - @requires(["authenticated", "admin"]) - async def post(self, request: Request) -> JSONResponse: - form_data = await request.json() - try: - form = Form(**form_data) - except ValidationError as e: - return JSONResponse(e.errors()) - - if await request.state.db.forms.find_one({"_id": form.id}): - return JSONResponse({ - "error": "Form with same ID already exists." - }, status_code=400) - - await request.state.db.forms.insert_one(form.dict(by_alias=True)) - return JSONResponse(form.dict()) |