Class: CollavreSlack::SlackMessageUpdateJob

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

Instance Method Summary collapse

Instance Method Details

#perform(slack_comment_link_id:, message:) ⇒ Object



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

def perform(slack_comment_link_id:, message:)
  with_slack_error_handling("SlackMessageUpdateJob") do
    Rails.logger.info("[CollavreSlack] SlackMessageUpdateJob performing for link_id=#{slack_comment_link_id}")

    comment_link = SlackCommentLink.find_by(id: slack_comment_link_id)
    return unless comment_link

    channel_link = comment_link.slack_channel_link
    return unless channel_link

    formatted_message = MentionMapping.to_slack(message, channel_link.)

    client = SlackClient.new(access_token: channel_link..access_token)
    response = client.update_message(
      channel: channel_link.channel_id,
      timestamp: comment_link.message_ts,
      text: formatted_message
    )

    if response[:ok]
      Rails.logger.info("[CollavreSlack] Message updated successfully, ts=#{comment_link.message_ts}")
    else
      Rails.logger.error("[CollavreSlack] Failed to update message: #{response[:error]}")
    end
  end
end