server: Allow to rename the household

This commit is contained in:
traxys 2023-05-29 22:08:43 +02:00
parent c23da789a1
commit f815441240
3 changed files with 22 additions and 2 deletions

View file

@ -38,6 +38,11 @@ pub struct CreateHouseholdResponse {
pub id: Uuid, pub id: Uuid,
} }
#[derive(Serialize, Deserialize)]
pub struct RenameHouseholdRequest {
pub name: String,
}
#[derive(Serialize, Deserialize)] #[derive(Serialize, Deserialize)]
pub struct AddToHouseholdRequest { pub struct AddToHouseholdRequest {
pub user: Uuid, pub user: Uuid,

View file

@ -11,7 +11,7 @@ use sea_query::OnConflict;
use api::{ use api::{
AddToHouseholdRequest, CreateHouseholdRequest, CreateHouseholdResponse, EmptyResponse, AddToHouseholdRequest, CreateHouseholdRequest, CreateHouseholdResponse, EmptyResponse,
Households, Households, RenameHouseholdRequest,
}; };
use serde::Deserialize; use serde::Deserialize;
@ -154,3 +154,17 @@ pub(super) async fn leave(
Ok(Json(EmptyResponse {})) Ok(Json(EmptyResponse {}))
} }
pub(super) async fn rename(
AuthorizedHousehold(household): AuthorizedHousehold,
state: State<AppState>,
Json(request): Json<RenameHouseholdRequest>,
) -> super::JsonResult<EmptyResponse> {
let mut household: household::ActiveModel = household.into();
household.name = ActiveValue::Set(request.name);
household.update(&state.db).await?;
Ok(Json(EmptyResponse {}))
}

View file

@ -188,7 +188,8 @@ pub(crate) fn router(api_allowed: Option<HeaderValue>) -> Router<AppState> {
"/household/:house_id", "/household/:house_id",
put(household::add_member) put(household::add_member)
.delete(household::leave) .delete(household::leave)
.layer(mk_service(vec![Method::PUT, Method::DELETE])), .patch(household::rename)
.layer(mk_service(vec![Method::PUT, Method::DELETE, Method::PATCH])),
) )
.route( .route(
"/household/:house_id/ingredients/:iid", "/household/:house_id/ingredients/:iid",