def post_to_register(): try: user_response = requests.post(service_uris['users'], json={ 'login': flask.request.form['login'], 'password_hash': hash_password(flask.request.form['password']), 'name': flask.request.form.get('name', None), 'country': flask.request.form.get('country', None), 'email': flask.request.form.get('email', None), }) except requests.exceptions.RequestException: return flask.render_template('error.html', reason='Users backend is unavailable'), 500 if user_response.status_code == 201: user = user_response.json() flask.session.user_id = user['id'] return flask.redirect(flask.session.pop('redirect_to', '/me'), code=303) return flask.render_template('error.html', reason=user_response.json()), 500
def post_to_sign_in(): try: user_response = requests.get(service_uris['users'], params={ 'q': simplejson.dumps({ 'filters': [ {'name': 'login', 'op': '==', 'val': flask.request.form['login']}, {'name': 'password_hash', 'op': '==', 'val': hash_password(flask.request.form['password'])}, ], 'single': True, }), }) except requests.exceptions.RequestException: return flask.render_template('error.html', reason='Users backend is unavailable'), 500 if user_response.status_code == 200: user = user_response.json() flask.session.user_id = user['id'] return flask.redirect(flask.session.pop('redirect_to', '/me'), code=303) return flask.render_template('error.html', reason=user_response.json()), 500
def patch_me(): user = {} if 'password' in flask.request.form and flask.request.form['password']: user['password_hash'] = hash_password(flask.request.form['password']) if 'name' in flask.request.form: user['name'] = flask.request.form['name'] or None if 'country' in flask.request.form: user['country'] = flask.request.form['country'] or None if 'email' in flask.request.form: user['email'] = flask.request.form['email'] or None try: user_response = requests.patch(service_uris['users'] + '/' + str(flask.session.user_id), json=user) except requests.exceptions.RequestException: return flask.render_template('error.html', reason='Users backend is unavailable'), 500 if user_response.status_code == 200: user = user_response.json() return flask.render_template('me.html', user=user) return flask.render_template('error.html', reason=user_response.json()), 500