aboutsummaryrefslogtreecommitdiff
path: root/src/commands/meme/delete.rs
diff options
context:
space:
mode:
authorNathan Perry <avaglir@gmail.com>2019-03-30 03:31:30 -0400
committerNathan Perry <avaglir@gmail.com>2019-03-30 03:31:30 -0400
commita6f5334f984531cf2304b6333b138944517d3703 (patch)
tree6ca29344197c4c0bc6d567c96bc41d4b01991fad /src/commands/meme/delete.rs
parentbe142ead930d5fc770320e530aec9ad3c2dbc842 (diff)
restructure meme module
Diffstat (limited to 'src/commands/meme/delete.rs')
-rw-r--r--src/commands/meme/delete.rs37
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)
+ }
+ }
+}