From 2aae4e2b1babd5031d28b359da64602875326e3a Mon Sep 17 00:00:00 2001 From: cami Date: Mon, 28 Jun 2021 02:19:51 +0200 Subject: [PATCH] Write survey data to backend (solves #70) In this commit the survey data will be written into the database for the corresponding user. The usercheck works with the authtoken which is sent in the header --- backend/src/app.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/backend/src/app.py b/backend/src/app.py index 8814604..a5fe15a 100644 --- a/backend/src/app.py +++ b/backend/src/app.py @@ -17,6 +17,10 @@ class User(db.Model): password = db.Column(db.Text) roles = db.Column(db.Text) is_active = db.Column(db.Boolean, default=True, server_default='true') + age = db.Column(db.Integer) + gender = db.Column(db.Text) + education = db.Column(db.Text) + skills = db.Column(db.Text) @property def rolenames(self): @@ -128,7 +132,8 @@ def protected(): A protected endpoint. The auth_required decorator will require a header containing a valid JWT .. example:: - $ curl http://localhost:5000/api/protected -X GET \ + $ curl http:// + localhost:5000/api/protected -X GET \ -H "Authorization: Bearer " """ return {'message': f'protected endpoint (allowed user {flask_praetorian.current_user().username})'} @@ -155,8 +160,22 @@ def register(): @flask_praetorian.auth_required def survey(): req = flask.request.get_json(force=True) + token = guard.read_token_from_header() + extracted_token = guard.extract_jwt_token(token) + id_req = extracted_token['id'] + + # get data from the survey and write it to the database + + age = req.get('age', None) gender = req.get('gender', None) - print(req) + education = req.get('education', None) + 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