File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ( ) ,
Original file line number Diff line number Diff 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 ( ) ,
Original file line number Diff line number Diff line change @@ -286,6 +286,11 @@ impl DictionaryManager {
286286 Some ( params) ,
287287 )
288288 }
289+ CommandError :: ReminderAlreadyCompleted ( reminder_id) => {
290+ let mut params = HashMap :: new ( ) ;
291+ params. insert ( "reminder_id" . to_string ( ) , reminder_id. clone ( ) ) ;
292+ ( "reminder.already_complete" . to_string ( ) , Some ( params) )
293+ }
289294 _ => ( "command.invalid_format" . to_string ( ) , None ) ,
290295 } ,
291296 ModmailError :: Thread ( thread_err) => match thread_err {
Original file line number Diff line number Diff line change @@ -75,6 +75,7 @@ pub enum CommandError {
7575 ReminderAlreadyUnsubscribed ( String ) ,
7676 ReminderRoleRequired ( String ) ,
7777 ReminderRoleNotFound ( String ) ,
78+ ReminderAlreadyCompleted ( String ) ,
7879}
7980
8081#[ derive( Debug , Clone ) ]
@@ -206,6 +207,9 @@ impl fmt::Display for CommandError {
206207 CommandError :: ReminderRoleNotFound ( role) => {
207208 write ! ( f, "Role {} not found" , role)
208209 }
210+ CommandError :: ReminderAlreadyCompleted ( reminder_id) => {
211+ write ! ( f, "Reminder {} has already been completed" , reminder_id)
212+ }
209213 }
210214 }
211215}
Original file line number Diff line number Diff line change @@ -786,6 +786,10 @@ pub fn load_english_messages(dict: &mut ErrorDictionary) {
786786 "⏰ Reminder for {roles} scheduled for **{time}** ({remaining_time})\n \n {content}" ,
787787 ) ,
788788 ) ;
789+ dict. messages . insert (
790+ "reminder.already_complete" . to_string ( ) ,
791+ DictionaryMessage :: new ( "The reminder '#{reminder_id}' has already been completed." ) ,
792+ ) ;
789793 dict. messages . insert (
790794 "reminder.show_with_content" . to_string ( ) ,
791795 DictionaryMessage :: new ( "⏰ Reminder <@{user}>: \n \n {content} !" ) ,
Original file line number Diff line number Diff line change @@ -822,6 +822,10 @@ pub fn load_french_messages(dict: &mut ErrorDictionary) {
822822 "reminder.show_without_content_roles" . to_string ( ) ,
823823 DictionaryMessage :: new ( "⏰ Rappel pour {roles} !" ) ,
824824 ) ;
825+ dict. messages . insert (
826+ "reminder.already_complete" . to_string ( ) ,
827+ DictionaryMessage :: new ( "Le rappel **#{reminder_id}** a déjà été complété." ) ,
828+ ) ;
825829 dict. messages . insert (
826830 "slash_command.add_reminder_command_description" . to_string ( ) ,
827831 DictionaryMessage :: new ( "Ajouter un rappel pour vous-même" ) ,
You can’t perform that action at this time.
0 commit comments