diff options
| author | Georgios Andreadis <info@gandreadis.com> | 2020-06-25 14:48:24 +0200 |
|---|---|---|
| committer | Georgios Andreadis <info@gandreadis.com> | 2020-06-25 14:48:24 +0200 |
| commit | ff31029e732dd56743690dc608f535163a0548ff (patch) | |
| tree | 04fe8e4a17816d93db386b5b6c560be654cdee86 /opendc/api/v2/users | |
| parent | c2706e023070211f8ac992b800353807a1f10886 (diff) | |
Experiment
Diffstat (limited to 'opendc/api/v2/users')
| -rw-r--r-- | opendc/api/v2/users/userId/endpoint.py | 48 |
1 files changed, 21 insertions, 27 deletions
diff --git a/opendc/api/v2/users/userId/endpoint.py b/opendc/api/v2/users/userId/endpoint.py index 6de26e64..9418f70a 100644 --- a/opendc/api/v2/users/userId/endpoint.py +++ b/opendc/api/v2/users/userId/endpoint.py @@ -1,5 +1,5 @@ +from opendc.models.user import User from opendc.util import exceptions -from opendc.util.database import DB from opendc.util.rest import Response @@ -11,12 +11,13 @@ def GET(request): except exceptions.ParameterError as e: return Response(400, str(e)) - user = DB.fetch_one({'_id': request.params_path['userId']}, 'users') + user = User(request.params_path['userId']) - if user is None: - return Response(404, f'User with ID {request.params_path["userId"]} not found.') - - return Response(200, f'Successfully retrieved {user}.', user) + validation_error = user.validate() + if validation_error is None: + return Response(200, f'Successfully retrieved {user}.', user.obj) + else: + return validation_error def PUT(request): @@ -31,22 +32,18 @@ def PUT(request): except exceptions.ParameterError as e: return Response(400, str(e)) - user_id = request.params_path['userId'] - user = DB.fetch_one({'_id': user_id}, 'users') - - if user is None: - return Response(404, f'User with ID {user_id} not found.') + user = User(request.params_path['userId']) - print(user['googleId'], request.google_id) - if user['googleId'] != request.google_id: - return Response(403, f'Forbidden from editing {user}.') + validation_error = user.validate(request.google_id) + if validation_error is not None: + return validation_error - user['givenName'] = request.params_body['user']['givenName'] - user['familyName'] = request.params_body['user']['familyName'] + user.set_property('givenName', request.params_body['user']['givenName']) + user.set_property('familyName', request.params_body['user']['familyName']) - DB.update(user_id, user, 'users') + user.update() - return Response(200, f'Successfully updated {user}.', user) + return Response(200, f'Successfully updated {user}.', user.obj) def DELETE(request): @@ -57,15 +54,12 @@ def DELETE(request): except exceptions.ParameterError as e: return Response(400, str(e)) - user_id = request.params_path['userId'] - user = DB.fetch_one({'_id': user_id}, 'users') - - if user is None: - return Response(404, f'User with ID {user_id} not found.') + user = User(request.params_path['userId']) - if user['googleId'] != request.google_id: - return Response(403, f'Forbidden from editing {user}.') + validation_error = user.validate(request.google_id) + if validation_error is not None: + return validation_error - DB.delete_one({'_id': user_id}, 'users') + user.delete() - return Response(200, f'Successfully deleted {user}.', user) + return Response(200, f'Successfully deleted {user}.', user.obj) |
