示例#1
0
def delete_user(username):
    user = Users.query.filter_by(username=username).first_or_404()
    db.session.delete(user)
    db.session.commit()
    response = user_schema.jsonify(user)
    response.status_code = 201
    return response
示例#2
0
def update_user(username):
    user = Users.query.filter_by(username=username).first_or_404()
    data = request.get_json() or {}
    if 'username' in data and data['username'] != user.username and \
            Users.query.filter_by(username=data['username']).first():
        return errors.bad_request('please use a different username')
    if 'email' in data and data['email'] != user.email and \
            Users.query.filter_by(email=data['email']).first():
        return errors.bad_request('please use a different email address')
    for field in ['username', 'email', 'address']:
        if field in data:
            setattr(user, field, data[field])
    if 'password_hash' in data:
        user.set_password(data['password_hash'])
    db.session.commit()
    return user_schema.jsonify(user)
示例#3
0
 def post(self):
     data = request.get_json() or {}
     if 'username' not in data or 'email' not in data or 'password_hash' not in data:
         return errors.bad_request('must include username, email and password fields')
     if Users.query.filter_by(username=data['username']).first():
         return errors.bad_request('please use a different username')
     if Users.query.filter_by(email=data['email']).first():
         return errors.bad_request('please use a different email address')
     user = Users()
     for field in ['username', 'email', 'user_address']:
         if field in data:
             setattr(user, field, data[field])
     if 'password_hash' in data:
         user.set_password(data['password_hash'])
     db.session.add(user)
     db.session.commit()
     response = user_schema.jsonify(user)
     response.status_code = 201
     response.headers['Location'] = url_for('api.usersget', username=user.username)
     return response
示例#4
0
def get_user(username):
    user = Users.query.filter_by(username=username).first_or_404()
    return user_schema.jsonify(user)