From ccf067505adb168f1e99e751cc426fdaeaf9224c Mon Sep 17 00:00:00 2001 From: "Sachin S. Kamath" <sskamath96@gmail.com> Date: Thu, 26 Oct 2017 01:56:42 +0530 Subject: [PATCH] Nested error handling hack for better stability Signed-off-by: Sachin S. Kamath <sskamath96@gmail.com> --- hodor/controllers/user.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/hodor/controllers/user.py b/hodor/controllers/user.py index 9a6d874..a8452c1 100644 --- a/hodor/controllers/user.py +++ b/hodor/controllers/user.py @@ -4,6 +4,7 @@ from flask import request, jsonify, abort, make_response from hodor.models.user import User from sqlalchemy.exc import IntegrityError + def _extract_required_fields(user): filtered_user = dict() ''' @@ -19,8 +20,6 @@ def _extract_required_fields(user): return filtered_user - - ######################################### # Get all the user from the database # ######################################### @@ -63,7 +62,9 @@ def get_user_by_username(user_slug): return make_response(jsonify(status=404, msg="No such user found in database"), 404) -# Register a user +######################################### +# Register a user to database # +######################################### @app.route('/users/new', methods=['POST']) def add_new_user(): """ @@ -96,7 +97,7 @@ def add_new_user(): @app.route('/users/check', methods=['POST']) def check_for_existing_user(): errors = [] - # If the username field is passed, checl the username field. + # If the username field is passed, check the username field. if request.data.get('username'): check_username = str(request.data.get('username').strip()) user_check_user = User.query.filter_by(username=check_username).first() @@ -138,9 +139,10 @@ def handle_sql_assertion_error(err): The below is an attempt to clean up the message and only return the relevant part to API ''' - errmsg = err.orig.args[0].split('\n')[1][9:] - except IndexError: - errmsg = err.orig.args[0].split('\n') + try: + errmsg = err.orig.args[0].split('\n')[1][9:] + except IndexError: + errmsg = err.orig.args[0].split('\n') except IndexError: errmsg = err.orig.args[0] return make_response(jsonify(status=400, msg=errmsg), 400) -- GitLab