diff options
| -rw-r--r-- | src/server/rz_api.py | 8 | ||||
| -rw-r--r-- | src/server/rz_feedback.py | 6 | ||||
| -rw-r--r-- | src/server/rz_mesh.py | 3 | ||||
| -rw-r--r-- | src/server/rz_req_handling.py | 20 | ||||
| -rw-r--r-- | src/server/rz_user.py | 12 |
5 files changed, 33 insertions, 16 deletions
diff --git a/src/server/rz_api.py b/src/server/rz_api.py index 8b7ac825..363dba40 100644 --- a/src/server/rz_api.py +++ b/src/server/rz_api.py @@ -34,7 +34,7 @@ from rz_api_common import __sanitize_input from rz_api_common import sanitize_input__topo_diff from rz_api_rest import common_resp_handle from rz_kernel import RZ_Kernel -from rz_req_handling import make_json_response +from rz_req_handling import make_response__json log = logging.getLogger('rhizi') @@ -181,18 +181,18 @@ def login(): u, p = sanitize_input(request) except: log.warn('failed to sanitize inputs. request: %s' % request) - return make_json_response(status=401) # return empty response + return make_response__json(status=401) # return empty response try: crypt_util.validate_login(flask.current_app.rz_config, u, p) except Exception as e: # login failed log.warn('login: unauthorized: user: %s' % (u)) - return make_json_response(status=401) # return empty response + return make_response__json(status=401) # return empty response # login successful session['username'] = u log.debug('login: success: user: %s' % (u)) - return make_json_response(status=200) # return empty response + return make_response__json(status=200) # return empty response if request.method == 'GET': return render_template('login.html') diff --git a/src/server/rz_feedback.py b/src/server/rz_feedback.py index 13a1fa91..bc059ebe 100644 --- a/src/server/rz_feedback.py +++ b/src/server/rz_feedback.py @@ -6,7 +6,7 @@ from flask import session import logging from rz_mail import send_email_message -from rz_req_handling import make_json_response +from rz_req_handling import make_response__json log = logging.getLogger('rhizi') @@ -51,7 +51,7 @@ def send_user_feedback__email(): u_feedback = sanitize_input(request) except: log.warn('failed to sanitize inputs. request: %s' % request) - return make_json_response(status=400) # bad Request + return make_response__json(status=400) # bad Request # FIXME: should be async via celery (or another method) session_user = session.get('username') @@ -77,4 +77,4 @@ def send_user_feedback__email(): except Exception: log.exception('send_user_feedback__email: exception while sending email') - return make_json_response(status=500) + return make_response__json(status=500) diff --git a/src/server/rz_mesh.py b/src/server/rz_mesh.py index edb9f4f7..1b34905b 100644 --- a/src/server/rz_mesh.py +++ b/src/server/rz_mesh.py @@ -12,6 +12,7 @@ from socketio.server import SocketIOServer from model.graph import Attr_Diff, Topo_Diff from rz_api_websocket import WebSocket_Graph_NS from rz_kernel import RZ_Kernel +from rz_req_handling import make_response__http__empty log = logging.getLogger('rhizi') @@ -69,7 +70,7 @@ def init_ws_interface(cfg, kernel, flask_webapp): socketio_manage(request.environ, {'/graph': WebSocket_Graph_NS}, ws_env) except: flask_webapp.logger.error("Exception while handling socketio connection", exc_info=True) - return Response() + return make_response__http__empty(101) # 'switching protocols' HTTP status code def ws_broadcast_to_all(pkt): for sessid, socket in ws_srv.sockets.iteritems(): diff --git a/src/server/rz_req_handling.py b/src/server/rz_req_handling.py index e69fdcfd..9d3e0b44 100644 --- a/src/server/rz_req_handling.py +++ b/src/server/rz_req_handling.py @@ -2,7 +2,7 @@ from flask import jsonify from flask import make_response import json -def make_json_response(status=200, data={}): +def make_response__json(status=200, data={}): """ Construct a json response with proper content-type header @@ -14,11 +14,27 @@ def make_json_response(status=200, data={}): resp.status = str(status) return resp -def make_http_response(status=200): +def make_response__http__empty(status=200): + """ + Construct an empty HTTP response + """ resp = make_response() resp.status = str(status) return resp +def make_response__json__html(status=200, html_str=''): + """ + Construct a json response with HTML payload + """ + return make_response__json(data={'response__html': html_str }) + +def make_response__json__redirect(redirect_url, status=303, html_str=''): + """ + Construct a json response with redirect payload + """ + return make_response__json(data={'response__html': html_str, + 'redirect_url': redirect_url }) + def common_resp_handle(data=None, error=None): """ common response handling: diff --git a/src/server/rz_user.py b/src/server/rz_user.py index 0038cec0..caa913b4 100644 --- a/src/server/rz_user.py +++ b/src/server/rz_user.py @@ -10,7 +10,7 @@ import logging import uuid from rz_mail import send_email_message -from rz_req_handling import make_json_response, make_response__ajax__html +from rz_req_handling import make_response__json, make_response__json__html log = logging.getLogger('rhizi') @@ -138,7 +138,7 @@ def rest__user_signup(): us_req = sanitize_input(request) except Exception as e: log.exception(e) - return make_response__ajax__html(status=400, html_str=html_err__tech_difficulty) + return make_response__json__html(status=400, html_str=html_err__tech_difficulty) # FIXME: implement form validation @@ -146,7 +146,7 @@ def rest__user_signup(): if None != existing_req: # already pending log.warning('user signup: request already pending: %s' % (existing_req)) - return make_response__ajax__html(status=200, html_str=html_ok__already_pending) + return make_response__json__html(status=200, html_str=html_ok__already_pending) us_req['submission_date'] = datetime.now() us_req['validation_key'] = generate_email_confirmation_key() @@ -155,10 +155,10 @@ def rest__user_signup(): try: send_user_activation_link__email(us_req) add_user_signup_req(us_req_map, us_req) - return make_response__ajax__html(html_str=html_ok__submitted) + return make_response__json__html(html_str=html_ok__submitted) except Exception as e: log.exception('user sign-up: failed to send validation email', e) - return make_response__ajax__html(status=500, html_str=html_err__tech_difficulty) + return make_response__json__html(status=500, html_str=html_err__tech_difficulty) if request.method == 'GET': @@ -220,4 +220,4 @@ def send_user_activation_link__email(us_req): except Exception: log.exception('send_user_feedback__email: exception while sending email') - return make_json_response(status=500) + return make_response__json(status=500) |
