Class: CollavreSlack::SlackMessageDeleteJob

Inherits:
ApplicationJob
  • Object
show all
Includes:
ErrorLoggable
Defined in:
app/jobs/collavre_slack/slack_message_delete_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(slack_channel_link_id:, message_ts:) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/jobs/collavre_slack/slack_message_delete_job.rb', line 7

def perform(slack_channel_link_id:, message_ts:)
  with_slack_error_handling("SlackMessageDeleteJob") do
    Rails.logger.info("[CollavreSlack] SlackMessageDeleteJob performing for channel_link_id=#{slack_channel_link_id}, ts=#{message_ts}")

    channel_link = SlackChannelLink.find_by(id: slack_channel_link_id)
    return unless channel_link

    client = SlackClient.new(access_token: channel_link..access_token)
    response = client.delete_message(
      channel: channel_link.channel_id,
      timestamp: message_ts
    )

    if response[:ok]
      Rails.logger.info("[CollavreSlack] Message deleted successfully, ts=#{message_ts}")
    else
      # message_not_found is not an error - message may have been deleted on Slack already
      unless response[:error] == "message_not_found"
        Rails.logger.error("[CollavreSlack] Failed to delete message: #{response[:error]}")
      end
    end
  end
end