aboutsummaryrefslogtreecommitdiffstats
path: root/backend/routes/forms/submit.py
diff options
context:
space:
mode:
authorGravatar Hassan Abouelela <[email protected]>2022-06-18 04:41:10 +0400
committerGravatar GitHub <[email protected]>2022-06-18 04:41:10 +0400
commitfe94892f573828a3c5bf61123d2dd9923e1e1986 (patch)
tree07782cc28afc74facfa8695b5660a865c0e8799f /backend/routes/forms/submit.py
parentuse Request to generate the state (diff)
parentMerge pull request #177 from python-discord/enable-login-in-prod (diff)
Merge branch 'main' into asgi-middleware
Diffstat (limited to 'backend/routes/forms/submit.py')
-rw-r--r--backend/routes/forms/submit.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/backend/routes/forms/submit.py b/backend/routes/forms/submit.py
index baf403d..5c500b5 100644
--- a/backend/routes/forms/submit.py
+++ b/backend/routes/forms/submit.py
@@ -22,6 +22,7 @@ from backend.authentication.user import User
from backend.models import Form, FormResponse
from backend.route import Route
from backend.routes.auth.authorize import set_response_token
+from backend.routes.forms.discover import AUTH_FORM
from backend.routes.forms.unittesting import execute_unittest
from backend.validation import ErrorMessage, api
@@ -106,9 +107,18 @@ class SubmitForm(Route):
data = await request.json()
data["timestamp"] = None
- if form := await request.state.db.forms.find_one(
- {"_id": request.path_params["form_id"], "features": "OPEN"}
- ):
+ form_id = request.path_params["form_id"]
+
+ if form_id == AUTH_FORM.id:
+ response = FormResponse(
+ id="not-submitted",
+ form_id=AUTH_FORM.id,
+ response={question.id: None for question in AUTH_FORM.questions},
+ timestamp=datetime.datetime.now().isoformat()
+ ).dict()
+ return JSONResponse({"form": AUTH_FORM.dict(admin=False), "response": response})
+
+ if form := await request.state.db.forms.find_one({"_id": form_id, "features": "OPEN"}):
form = Form(**form)
response = data.copy()
response["id"] = str(uuid.uuid4())