Add backend validation if the survey input is correct
This commit is contained in:
parent
1ce5b467be
commit
699b6fae52
2 changed files with 91 additions and 21 deletions
|
@ -172,18 +172,66 @@ def survey():
|
|||
|
||||
# get data from the survey and write it to the database
|
||||
|
||||
# placeholder if the survey is valid
|
||||
is_survey_valid = True
|
||||
|
||||
# Check age if it's numeric
|
||||
age = req.get('age', None)
|
||||
if not age.isnumeric():
|
||||
is_survey_valid = False
|
||||
|
||||
# check gender possibilites
|
||||
gender = req.get('gender', None)
|
||||
possible_genders = [
|
||||
"male",
|
||||
"female",
|
||||
"divers",
|
||||
"sex_na"
|
||||
]
|
||||
if gender not in possible_genders:
|
||||
is_survey_valid = False
|
||||
|
||||
# check education possibilities
|
||||
education = req.get('education', None)
|
||||
possible_education = [
|
||||
"edu_lehre",
|
||||
"edu_gymnasium",
|
||||
"edu_berufsmatura",
|
||||
"edu_bachelor",
|
||||
"edu_Master",
|
||||
"edu_na"
|
||||
]
|
||||
if education not in possible_education:
|
||||
is_survey_valid = False
|
||||
|
||||
# check skills values
|
||||
skills = req.get('skills', None)
|
||||
user_db = User.query.filter_by(id=id_req).first()
|
||||
user_db.age = age
|
||||
user_db.gender = gender
|
||||
user_db.education = education
|
||||
user_db.skills = skills
|
||||
db.session.commit()
|
||||
ret = {'message': 'Umfrage freigestellt'}
|
||||
return ret, 200
|
||||
possible_skills = [
|
||||
"skills_sehr_gut",
|
||||
"skills_gut",
|
||||
"skills_mittel",
|
||||
"skills_nicht_so_good",
|
||||
"skills_garnicht",
|
||||
"skills_na"
|
||||
]
|
||||
|
||||
if skills not in possible_skills:
|
||||
is_survey_valid = False
|
||||
|
||||
if is_survey_valid:
|
||||
user_db = User.query.filter_by(id=id_req).first()
|
||||
user_db.age = age
|
||||
user_db.gender = gender
|
||||
user_db.education = education
|
||||
user_db.skills = skills
|
||||
db.session.commit()
|
||||
print(req)
|
||||
ret = {'message': 'Vielen Dank für das Ausfüllen der Umfrage.'}
|
||||
return ret, 200
|
||||
else:
|
||||
ret = {
|
||||
'message': 'Einige der Felder stimmen nicht überein und müssen angepasst werden.'}
|
||||
return ret, 400
|
||||
|
||||
|
||||
@app.route('/time')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue