From 700bc61d92463aa9a3c25c335c5c3b7a7e31bf56 Mon Sep 17 00:00:00 2001 From: phoenix Date: Fri, 19 Jun 2026 17:06:30 -0400 Subject: [PATCH] There it goes --- src/caller/message/scheduling.rs | 58 ++++++++++++++++++-------------- tests/test.rs | 12 +++++-- 2 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/caller/message/scheduling.rs b/src/caller/message/scheduling.rs index 870499a..af1eef7 100644 --- a/src/caller/message/scheduling.rs +++ b/src/caller/message/scheduling.rs @@ -51,12 +51,13 @@ pub mod request { impl UpdateScheduledMessageStatusRequest { pub fn is_valid(&self) -> bool { - if !self.status.is_empty() || !self.scheduled_message_id.is_nil() { - if self.status == textsender_models::message::scheduling::PENDING || - self.status == textsender_models::message::scheduling::READY || - self.status == textsender_models::message::scheduling::PROCESSING || - self.status == textsender_models::message::scheduling::DONE { - true + if !self.status.is_empty() || !self.scheduled_message_id.is_nil() { + if self.status == textsender_models::message::scheduling::PENDING + || self.status == textsender_models::message::scheduling::READY + || self.status == textsender_models::message::scheduling::PROCESSING + || self.status == textsender_models::message::scheduling::DONE + { + true } else { false } @@ -270,26 +271,31 @@ pub mod endpoint { match scheduling_repo::get(&pool, &payload.scheduled_message_id).await { Ok(scheduled_message) => { let old_status = scheduled_message.status; - match scheduling_repo::update_status( - &pool, - &scheduled_message.id, - &payload.status, - ) - .await - { - Ok(_) => { - response.message = - String::from(super::super::super::response::SUCCESSFUL); - response.data = vec![super::response::ChangedStatus { old_status }]; - (axum::http::StatusCode::OK, axum::Json(response)) - } - Err(err) => { - eprintln!("Error: {err:?}"); - response.message = String::from("Invalid"); - ( - axum::http::StatusCode::INTERNAL_SERVER_ERROR, - axum::Json(response), - ) + if old_status == payload.status { + response.message = String::from("No change"); + (axum::http::StatusCode::NOT_MODIFIED, axum::Json(response)) + } else { + match scheduling_repo::update_status( + &pool, + &scheduled_message.id, + &payload.status, + ) + .await + { + Ok(_) => { + response.message = + String::from(super::super::super::response::SUCCESSFUL); + response.data = vec![super::response::ChangedStatus { old_status }]; + (axum::http::StatusCode::OK, axum::Json(response)) + } + Err(err) => { + eprintln!("Error: {err:?}"); + response.message = String::from("Invalid"); + ( + axum::http::StatusCode::INTERNAL_SERVER_ERROR, + axum::Json(response), + ) + } } } } diff --git a/tests/test.rs b/tests/test.rs index 94990b2..1519c09 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -388,7 +388,9 @@ mod request { "status": updated_status }); - match super::super::run_post(Some(&payload), &uri, axum::http::Method::PATCH, true).await { + match super::super::run_post(Some(&payload), &uri, axum::http::Method::PATCH, true) + .await + { Ok(req) => match app.clone().oneshot(req).await { Ok(response) => Ok(response), Err(err) => Err(axum::http::Error::from(err)), @@ -1120,7 +1122,13 @@ async fn test_update_scheduled_message_status() { } } - match request::message::scheduling::update_scheduled_message_status(&app, &scheduled_message_id, textsender_models::message::scheduling::READY).await { + match request::message::scheduling::update_scheduled_message_status( + &app, + &scheduled_message_id, + textsender_models::message::scheduling::READY, + ) + .await + { Ok(response) => { let resp = util::get_resp_data::< textsender_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse,