use std::sync::Arc;
use axum::{
Extension, Json,
extract::{Query, State},
};
use pib_service_api_auth::user::UserInfo;
use pib_service_api_types::{Pagination, user::get::ResponseBody};
use pib_service_facade::Service;
use crate::Result;
pub(crate) async fn handle<E: Into<pib_service_facade::Error> + Send + Sync>(
State(service): State<Arc<dyn Service<E>>>,
Extension(user): Extension<UserInfo>,
Query(pagination): Query<Pagination>,
) -> Result<Json<ResponseBody>>
where
crate::Error: From<E>,
{
Ok(Json(
service.handle_user_get(user, pagination.into()).await?,
))
}