From 265e48f84bd6789e234e200a038b4933d04cdea5 Mon Sep 17 00:00:00 2001 From: jude Date: Thu, 20 Mar 2025 16:56:10 +0000 Subject: [PATCH] Retry the fix --- .../Reminder/ButtonRow/EditButtonRow.tsx | 6 ++ .../routes/dashboard/api/guild/reminders.rs | 64 ++++++++++--------- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/reminder-dashboard/src/components/Reminder/ButtonRow/EditButtonRow.tsx b/reminder-dashboard/src/components/Reminder/ButtonRow/EditButtonRow.tsx index bce6223..d1b2cb0 100644 --- a/reminder-dashboard/src/components/Reminder/ButtonRow/EditButtonRow.tsx +++ b/reminder-dashboard/src/components/Reminder/ButtonRow/EditButtonRow.tsx @@ -32,6 +32,12 @@ export const EditButtonRow = () => { setRecentlySaved(false); flash({ message: response.data.error, type: "error" }); + } else if (response.data.errors && response.data.errors.length > 0) { + setRecentlySaved(false); + + for (const error of response.data.errors) { + flash({ message: error, type: "error" }); + } } else { setRecentlySaved(true); diff --git a/src/web/routes/dashboard/api/guild/reminders.rs b/src/web/routes/dashboard/api/guild/reminders.rs index d0b17ca..c6ba793 100644 --- a/src/web/routes/dashboard/api/guild/reminders.rs +++ b/src/web/routes/dashboard/api/guild/reminders.rs @@ -274,39 +274,39 @@ pub async fn edit_reminder( reminder.channel, id ); - return Err(json!({"error": "Channel not found"})); - } + error.push("Channel not found".to_string()); + } else { + let channel = create_database_channel( + ctx.inner(), + ChannelId::new(reminder.channel), + &mut transaction, + ) + .await; - let channel = create_database_channel( - ctx.inner(), - ChannelId::new(reminder.channel), - &mut transaction, - ) - .await; + match channel { + Ok(channel) => { + match sqlx::query!( + "UPDATE reminders SET channel_id = ? WHERE uid = ?", + channel, + reminder.uid + ) + .execute(transaction.executor()) + .await + { + Ok(_) => {} + Err(e) => { + warn!("Error setting channel: {:?}", e); - if let Err(e) = channel { - warn!("`create_database_channel` returned an error code: {:?}", e); + error.push("Couldn't set channel".to_string()) + } + } + } - return Err( - json!({"error": "Failed to configure channel for reminders. Please check the bot permissions"}), - ); - } + Err(e) => { + warn!("`create_database_channel` returned an error code: {:?}", e); - let channel = channel.unwrap(); - - match sqlx::query!( - "UPDATE reminders SET channel_id = ? WHERE uid = ?", - channel, - reminder.uid - ) - .execute(transaction.executor()) - .await - { - Ok(_) => {} - Err(e) => { - warn!("Error setting channel: {:?}", e); - - error.push("Couldn't set channel".to_string()) + error.push("Failed to configure channel for reminders. Please check the bot permissions".to_string()); + } } } } @@ -317,14 +317,16 @@ pub async fn edit_reminder( reminder.channel, id ); - return Err(json!({"error": "Channel not found"})); + error.push("Channel not found".to_string()); } } } if let Err(e) = transaction.commit().await { warn!("Couldn't commit transaction: {:?}", e); - return json_err!("Couldn't commit transaction"); + return Err( + json!({"reminder": Option::::None, "errors": vec!["Unknown error"]}), + ); } match sqlx::query_as_unchecked!(