use std::sync::Arc;
use axum::{Extension, Json, extract::State, response::Redirect};
use pib_service_api_auth::user::UserInfo;
use pib_service_api_types::me::profile::{GetResponseBody, PatchRequestBody};
use pib_service_facade::Service;
use crate::Result;
pub(crate) async fn get(
State(service): State<Arc<dyn Service>>,
Extension(user): Extension<UserInfo>,
) -> Result<Json<GetResponseBody>> {
Ok(Json(service.profile_me_get(user).await?))
}
pub(crate) async fn patch(
State(service): State<Arc<dyn Service>>,
Extension(user): Extension<UserInfo>,
Json(body): Json<PatchRequestBody>,
) -> Result<Redirect> {
service.profile_me_patch(user, body).await?;
Ok(Redirect::to("/me/profile"))
}