Skip to content

Commit 735d251

Browse files
committed
refactor(unremind): return an error when a user tries to delete a reminder that has already been completed
1 parent cff1ecb commit 735d251

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

crates/rustmail/src/commands/remove_reminder/slash_command/remove_reminder.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,15 @@ impl RegistrableCommand for RemoveReminderCommand {
100100
};
101101

102102
let reminder = match get_reminder_by_id(reminder_id, pool).await {
103-
Ok(Some(r)) => r,
103+
Ok(Some(r)) => {
104+
if r.completed {
105+
return Err(ModmailError::Command(
106+
CommandError::ReminderAlreadyCompleted(reminder_id.to_string()),
107+
));
108+
} else {
109+
r
110+
}
111+
}
104112
Ok(None) => {
105113
return Err(ModmailError::Database(DatabaseError::NotFound(
106114
"".to_string(),

crates/rustmail/src/commands/remove_reminder/text_command/remove_reminder.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,15 @@ pub async fn remove_reminder(
3838
};
3939

4040
let reminder = match get_reminder_by_id(reminder_id as i64, pool).await {
41-
Ok(Some(r)) => r,
41+
Ok(Some(r)) => {
42+
if r.completed {
43+
return Err(ModmailError::Command(
44+
CommandError::ReminderAlreadyCompleted(reminder_id.to_string()),
45+
));
46+
} else {
47+
r
48+
}
49+
}
4250
Ok(None) => {
4351
return Err(ModmailError::Database(DatabaseError::NotFound(
4452
"".to_string(),

0 commit comments

Comments
 (0)