use axum::Json; use axum::extract::State; use jwt::extractor::AuthUser; use crate::error::UserResult; use crate::features::UserService; use crate::features::profile::{UpdateProfileCmd, UserMe}; #[utoipa::path( patch, path = "/user/me/profile", tag = "user", request_body = UpdateProfileCmd, responses( (status = 200, description = "Updated self profile.", body = UserMe), ), security(("bearer_auth" = [])), )] pub(crate) async fn handler( State(svc): State, AuthUser { claims }: AuthUser, Json(cmd): Json, ) -> UserResult> { let user = svc.update_profile(claims.sub, claims.sub, cmd).await?; Ok(Json(user)) }