示例#1
0
 def post(self, user_id):
     user = User.get_by_id(int(user_id))
     first_name = self.request.get("first_name")
     last_name = self.request.get("last_name")
     address = self.request.get("address")
     phone_number = self.request.get("phone_number")
     User.update(user=user, first_name=first_name, last_name=last_name, address=address, phone_number=phone_number)
     self.redirect_to("user-details", user_id=int(user_id))
示例#2
0
 def post(self, user_id):
     user = User.get_by_id(int(user_id))
     first_name = self.request.get("first_name")
     last_name = self.request.get("last_name")
     address = self.request.get("address")
     phone_number = self.request.get("phone_number")
     User.update(user=user, first_name=first_name, last_name=last_name, address=address, phone_number=phone_number)
     self.redirect_to("user-details", user_id=int(user_id))
示例#3
0
def update_user_profile():
    try:
        payload = get_payload()
    except jwt.exceptions.PyJWTError:
        # TODO: explain the error more obviously
        return format_response(data=None,
                               success=False,
                               message=_('You are not authorized'),
                               status_code=401)

    user_id = payload['id']
    connect_db()
    user = g.db.execute(sa.select([User
                                   ]).where(User.c.id == user_id)).fetchone()

    form = ProfileForm(context={'user': user}, partial=True)
    data = form.load(request.json or {})

    values_to_update = {'modified': sa.func.NOW()}
    for key in data:
        if key in ['username', 'name', 'email']:
            values_to_update.update({key: data[key]})
        elif key == 'password':
            values_to_update.update(
                {'password': generate_password_hash(data[key])})

    transaction = g.db.begin()
    g.db.execute(
        User.update().values(**values_to_update).where(User.c.id == user_id))
    transaction.commit()

    return format_response(data=None)