Beispiel #1
0
def create_user():
    """
    Create a new user if not exists.

    :return: Flask `Response` object with added JSON representation of `User` and
    `Content-Type: application/json` HTTP header.
    """
    user_data = request.get_json() or {}
    if any(field not in user_data for field in ('username', 'password')):
        return bad_request('Username and password are mandatory fields')
    if User.query.filter_by(username=user_data['username']).first():
        return bad_request(
            'The user is already exist, please use a different username')
    user = User()
    user.from_dict(user_data, new_user=True)
    db.session.add(user)
    db.session.commit()
    response = jsonify(user.to_dict())
    response.status_code = 201
    response.headers['Location'] = url_for('api.get_user', id_=user.id_)
    return response