def register(): try: data = registerSchema.validate(request.json) except SchemaError as e: error = { 'code': 'auth.register.invalid', 'message': 'Invalid data for register', 'details': str(e) } return jsonify(error=error), 403 if User.by_username(request.json['username']).count() > 0: error = { 'code': 'auth.register.username_taken', 'message': 'Username already taken' } return jsonify(error=error), 403 if User.by_email(request.json['email']).count() > 0: error = { 'code': 'auth.register.email_in_use', 'message': 'A user with the supplied email already exists' } return jsonify(error=error), 403 user = userstore.create_user(**data) session.add(user) session.commit() login_user(user, True) auth_token = user.get_auth_token() return jsonify(user=user.as_personal_json(), auth_token=auth_token), 201
def user_workouts(username): user = User.by_username(username) user = first_or_404(user) workouts = Workout.query.filter_by(user_id=user.id) \ .filter_by(is_private=False) \ .order_by(Workout.created_at.desc()) return jsonify(workouts=[workout.as_json() for workout in workouts], user=user.as_json())
def test_can_register(self, flask, dbtransaction): data = { 'full_name': 'Alice', 'email': '*****@*****.**', 'password': '******', 'username': '******' } result = flask.post('/auth/register', data=json.dumps(data), headers={'Content-Type': 'application/json'}) assert result.status_code == 201 assert result.json['user']['email'] == '*****@*****.**' assert result.json['user']['username'] == 'alice' assert result.json['user']['full_name'] == 'Alice' assert User.by_username('alice').count() == 1
def user_by_username(username): user = User.by_username(username) user = first_or_404(user) return jsonify(user=user.as_json())