diff options
| author | Nathan Perry <avaglir@gmail.com> | 2019-03-30 03:31:30 -0400 |
|---|---|---|
| committer | Nathan Perry <avaglir@gmail.com> | 2019-03-30 03:31:30 -0400 |
| commit | a6f5334f984531cf2304b6333b138944517d3703 (patch) | |
| tree | 6ca29344197c4c0bc6d567c96bc41d4b01991fad /src/commands/meme/delete.rs | |
| parent | be142ead930d5fc770320e530aec9ad3c2dbc842 (diff) | |
restructure meme module
Diffstat (limited to 'src/commands/meme/delete.rs')
| -rw-r--r-- | src/commands/meme/delete.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/commands/meme/delete.rs b/src/commands/meme/delete.rs new file mode 100644 index 0000000..5c6eb13 --- /dev/null +++ b/src/commands/meme/delete.rs @@ -0,0 +1,37 @@ +use diesel::{ + NotFound, + result::Error as DieselError, +}; +use serenity::{ + framework::standard::Args, + model::channel::Message, + prelude::*, +}; + +use crate::{ + commands::send, + db::{ + connection, + delete_meme, + }, + Result, +}; + +pub fn delmeme(_: &mut Context, msg: &Message, mut args: Args) -> Result<()> { + let title = args.single_quoted::<String>()?; + + let conn = connection()?; + match delete_meme(&conn, &title, msg.author.id.0) { + Ok(_) => msg.react("💀"), + Err(e) => { + if let Some(NotFound) = e.downcast_ref::<DieselError>() { + msg.react("❓")?; + info!("attempted to delete nonexistent meme: '{}'", title); + send(msg.channel_id, "nice try", msg.tts)?; + return Ok(()); + } + + Err(e) + } + } +} |
