aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joe Banks <[email protected]>2020-12-28 21:36:53 +0000
committerGravatar GitHub <[email protected]>2020-12-28 21:36:53 +0000
commit3b11fd104aac24d4b14d60babbae9afd58c8ee22 (patch)
tree67c2ca29e0a709facd18fa18cb1d7714b72f24b0
parentFix deployment manifest (diff)
parentAdd handling of optional fields to submit endpoint (diff)
Merge pull request #48 from python-discord/ks123/optional-questions
-rw-r--r--backend/models/question.py1
-rw-r--r--backend/routes/forms/submit.py5
2 files changed, 5 insertions, 1 deletions
diff --git a/backend/models/question.py b/backend/models/question.py
index 3b98024..7daeb5a 100644
--- a/backend/models/question.py
+++ b/backend/models/question.py
@@ -12,6 +12,7 @@ class Question(BaseModel):
name: str
type: str
data: dict[str, t.Any]
+ required: bool
class Config:
allow_population_by_field_name = True
diff --git a/backend/routes/forms/submit.py b/backend/routes/forms/submit.py
index 8588a2d..d8e6d35 100644
--- a/backend/routes/forms/submit.py
+++ b/backend/routes/forms/submit.py
@@ -111,7 +111,10 @@ class SubmitForm(Route):
missing_fields = []
for question in form.questions:
if question.id not in response["response"]:
- missing_fields.append(question.id)
+ if not question.required:
+ response["response"][question.id] = None
+ else:
+ missing_fields.append(question.id)
if missing_fields:
return JSONResponse({