From ff31029e732dd56743690dc608f535163a0548ff Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Thu, 25 Jun 2020 14:48:24 +0200 Subject: Experiment --- opendc/api/v2/users/userId/endpoint.py | 48 +++++++++++++++------------------- 1 file changed, 21 insertions(+), 27 deletions(-) (limited to 'opendc/api/v2/users') 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) -- cgit v1.2.3