def register(): def email_exists(email): return db.execute('SELECT id FROM user WHERE email = ?', (email, )).fetchone() is not None def register_new_email(email, password, apiKey): db.execute( 'INSERT INTO user (email, password, api_key, curr_num) values (?, ?, ?, ?)', (email, generate_password_hash(password), apiKey, 0)) db.commit() email = request.form['email'] password = request.form['password'] db = get_db() errors = validate_email(email) if email_exists(email): errors.append('User {} is already registered.'.format(email)) if not password: errors.append('Password is required.') if errors: return jsonify(errors=errors), 400 api_key = token_urlsafe() register_new_email(email, password, api_key) return jsonify(api_key=api_key)
def wrapped_route(**kwargs): email = request.headers[EMAIL_HEADER] apiKey = request.headers[API_KEY_HEADER] errors = validate_email(email) if not errors: errors = validate_api_key(email, apiKey) if errors: return jsonify(errors=errors), 400 return route(**kwargs)
def test_validate_email_valid(): errors = validate_email('*****@*****.**') assert not errors
def test_validate_email_invalid(): errors = validate_email('100%AnEmail') assert 'Email format is invalid.' in errors
def test_validate_email_empty(): errors = validate_email('') assert 'Email is required.' in errors