diff --git a/app/models/hackbot/dispatcher.rb b/app/models/hackbot/dispatcher.rb index c919b54..4c36aaa 100644 --- a/app/models/hackbot/dispatcher.rb +++ b/app/models/hackbot/dispatcher.rb @@ -7,6 +7,7 @@ class Dispatcher Hackbot::Interactions::Gifs, Hackbot::Interactions::Help, Hackbot::Interactions::Lookup, + Hackbot::Interactions::RemoveJoinMessage, Hackbot::Interactions::SetPoc, Hackbot::Interactions::Sql, Hackbot::Interactions::Stats, diff --git a/app/models/hackbot/interactions/remove_join_message.rb b/app/models/hackbot/interactions/remove_join_message.rb new file mode 100644 index 0000000..ec3796e --- /dev/null +++ b/app/models/hackbot/interactions/remove_join_message.rb @@ -0,0 +1,13 @@ +module Hackbot + module Interactions + class RemoveJoinMessage < TextConversation + def should_start? + super && event[:subtype] == 'channel_join' + end + + def start + del_msg(event[:channel], event[:ts]) + end + end + end +end diff --git a/app/models/hackbot/slack_interaction.rb b/app/models/hackbot/slack_interaction.rb index 84c6f00..362fbc7 100644 --- a/app/models/hackbot/slack_interaction.rb +++ b/app/models/hackbot/slack_interaction.rb @@ -18,6 +18,10 @@ def send_msg(channel, msg) ::SlackClient::Chat.send_msg(channel, nil, access_token, opts) end + def del_msg(channel, ts) + ::SlackClient::Chat.delete(channel, ts, access_token) + end + def attach(channel, *attachments) send_msg(channel, attachments: attachments) end diff --git a/lib/slack_client/chat.rb b/lib/slack_client/chat.rb index ba91eb8..06e8edc 100644 --- a/lib/slack_client/chat.rb +++ b/lib/slack_client/chat.rb @@ -15,5 +15,9 @@ def self.send_msg(channel, text, access_token, extra_params = {}) SlackClient.rpc('chat.postMessage', access_token, extra_params) end + + def self.delete(channel, ts, access_token) + SlackClient.rpc('chat.delete', access_token, channel: channel, ts: ts) + end end end