pib-service-api 0.13.1

pib-service edit API
Documentation
// SPDX-FileCopyrightText: Politik im Blick developers
// SPDX-FileCopyrightText: Wolfgang Silbermayr <wolfgang@silbermayr.at>
//
// SPDX-License-Identifier: AGPL-3.0-or-later OR EUPL-1.2

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"))
}