From 9d345b9c42c292c7a10a5c247dba1fc2fd6bb402 Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Sat, 19 Apr 2025 22:00:27 +0200 Subject: [PATCH] Can delete a movement --- moneymgr_backend/src/controllers/movement_controller.rs | 6 ++++++ moneymgr_backend/src/main.rs | 4 ++++ moneymgr_backend/src/services/movements_service.rs | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/moneymgr_backend/src/controllers/movement_controller.rs b/moneymgr_backend/src/controllers/movement_controller.rs index 21cd309..c91894e 100644 --- a/moneymgr_backend/src/controllers/movement_controller.rs +++ b/moneymgr_backend/src/controllers/movement_controller.rs @@ -27,3 +27,9 @@ pub async fn get_list_of_account(account_id: AccountInPath) -> HttpResult { pub async fn get_single(movement: MovementInPath) -> HttpResult { Ok(HttpResponse::Ok().json(movement.movement())) } + +/// Delete a movement +pub async fn delete(movement: MovementInPath) -> HttpResult { + movements_service::delete(movement.movement().id()).await?; + Ok(HttpResponse::Accepted().finish()) +} diff --git a/moneymgr_backend/src/main.rs b/moneymgr_backend/src/main.rs index 542c21b..e18119d 100644 --- a/moneymgr_backend/src/main.rs +++ b/moneymgr_backend/src/main.rs @@ -139,6 +139,10 @@ async fn main() -> std::io::Result<()> { "/api/movement/{movement_id}", web::get().to(movement_controller::get_single), ) + .route( + "/api/movement/{movement_id}", + web::delete().to(movement_controller::delete), + ) // Static assets .route("/", web::get().to(static_controller::root_index)) .route( diff --git a/moneymgr_backend/src/services/movements_service.rs b/moneymgr_backend/src/services/movements_service.rs index e85c17f..e0caa25 100644 --- a/moneymgr_backend/src/services/movements_service.rs +++ b/moneymgr_backend/src/services/movements_service.rs @@ -127,3 +127,10 @@ pub async fn get_list_account(account_id: AccountID) -> anyhow::Result anyhow::Result<()> { + diesel::delete(movements::dsl::movements.filter(movements::dsl::id.eq(id.0))) + .execute(&mut db()?)?; + Ok(()) +}