From 6976dcf8f3a495c21accf2b97f682f222c8ca01c Mon Sep 17 00:00:00 2001 From: Kevin Froman Date: Sat, 8 Aug 2020 15:39:24 -0500 Subject: [PATCH] Friends API now shows redirect error message when ref header not set instead of request failing --- src/httpapi/friendsapi/__init__.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/httpapi/friendsapi/__init__.py b/src/httpapi/friendsapi/__init__.py index 03bc552c..329ea7f4 100755 --- a/src/httpapi/friendsapi/__init__.py +++ b/src/httpapi/friendsapi/__init__.py @@ -23,6 +23,7 @@ from coredb import keydb """ friends = Blueprint('friends', __name__) + @friends.route('/friends/list') def list_friends(): pubkey_list = {} @@ -31,28 +32,44 @@ def list_friends(): pubkey_list[friend.publicKey] = {'name': friend.get_info('name')} return json.dumps(pubkey_list) + @friends.route('/friends/add/', methods=['POST']) def add_friend(pubkey): contactmanager.ContactManager(pubkey, saveUser=True).setTrust(1) - return redirect(request.referrer + '#' + request.form['token']) + try: + return redirect(request.referrer + '#' + request.form['token']) + except TypeError: + return Response( + "Added, but referrer not set, cannot return to friends page") + @friends.route('/friends/remove/', methods=['POST']) def remove_friend(pubkey): contactmanager.ContactManager(pubkey).setTrust(0) contactmanager.ContactManager(pubkey).delete_contact() keydb.removekeys.remove_user(pubkey) - return redirect(request.referrer + '#' + request.form['token']) + try: + return redirect(request.referrer + '#' + request.form['token']) + except TypeError: + return Response( + "Friend removed, but referrer not set, cannot return to page") + @friends.route('/friends/setinfo//', methods=['POST']) def set_info(pubkey, key): data = request.form['data'] contactmanager.ContactManager(pubkey).set_info(key, data) - return redirect(request.referrer + '#' + request.form['token']) + try: + return redirect(request.referrer + '#' + request.form['token']) + except TypeError: + return Response( + "Info set, but referrer not set, cannot return to friends page") + @friends.route('/friends/getinfo//') def get_info(pubkey, key): - retData = contactmanager.ContactManager(pubkey).get_info(key) - if retData is None: + ret_data = contactmanager.ContactManager(pubkey).get_info(key) + if ret_data is None: abort(404) else: - return retData \ No newline at end of file + return ret_data \ No newline at end of file