Add backend validation if the survey input is correct

This commit is contained in:
cami 2021-07-05 17:51:49 +02:00
parent 1ce5b467be
commit 699b6fae52
2 changed files with 91 additions and 21 deletions

View file

@ -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')