@router.put('/{user_id}', response_model=UserPublic)
def update_user(
user_id: int,
user: UserSchema,
session: Session,
current_user: CurrentUser,
):
if current_user.id != user_id:
raise HTTPException(
status_code=HTTPStatus.FORBIDDEN,
detail='Not enough permissions'
)
try:
current_user.username = user.username
current_user.password = get_password_hash(user.password)
current_user.email = user.email
session.commit()
session.refresh(current_user)
return current_user
except IntegrityError:
raise HTTPException(
status_code=HTTPStatus.CONFLICT,
detail='Username or Email already exists',
)
graph TD
A["Validar o schema"] --> B1
B1 --> C["Algumas operações"]
C --> B2
C --> E["Retornar o recurso"]
subgraph B1[aguardando I/O]
B["Conectar ao DB"]
end
subgraph B2[aguardando I/O]
D["Repassa ao banco de dados"]
end
B2 --> C