use std::sync::Arc;
use axum::{Extension, Json, extract::State};
use pib_service_api_types::me::profile::GetResponseBody;
use crate::{Result, ServiceState, oidc::UserInfo};
pub(crate) async fn get(
State(service_state): State<Arc<ServiceState>>,
Extension(user): Extension<UserInfo>,
) -> Result<Json<GetResponseBody>> {
let mut inventory = service_state.inventory_provider.get_inventory().await?;
let user = inventory.get_user_by_sub(user.sub.to_string()).await?;
Ok(Json(GetResponseBody {
display_name: user.display_name,
}))
}