mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-21 21:44:52 +00:00
chore: Rescue slack link unfurling errors. (#11033)
Fixes https://linear.app/chatwoot/issue/CW-4122/slackwebapierrorsmissingscope-missing-scope This PR adds the ability to handle errors when scopes are missing during link unfurling. Since link unfurling is just a nice-to-have feature that doesn't affect core functionality, we will silently ignore these errors. --------- Co-authored-by: Sojan <sojan@pepalo.com>
This commit is contained in:
@@ -18,6 +18,10 @@ class Integrations::Slack::SendOnSlackService < Base::SendOnChannelService
|
|||||||
slack_client.chat_unfurl(
|
slack_client.chat_unfurl(
|
||||||
event
|
event
|
||||||
)
|
)
|
||||||
|
# You may wonder why we're not requesting reauthorization and disabling hooks when scope errors occur.
|
||||||
|
# Since link unfurling is just a nice-to-have feature that doesn't affect core functionality, we will silently ignore these errors.
|
||||||
|
rescue Slack::Web::Api::Errors::MissingScope => e
|
||||||
|
Rails.logger.warn "Slack: Missing scope error: #{e.message}"
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -269,6 +269,19 @@ describe Integrations::Slack::SendOnSlackService do
|
|||||||
expect(hook).to be_disabled
|
expect(hook).to be_disabled
|
||||||
expect(hook).to have_received(:prompt_reauthorization!)
|
expect(hook).to have_received(:prompt_reauthorization!)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'logs MissingScope error during link unfurl' do
|
||||||
|
unflur_payload = { channel: 'channel', ts: 'timestamp', unfurls: {} }
|
||||||
|
error = Slack::Web::Api::Errors::MissingScope.new('Missing required scope')
|
||||||
|
|
||||||
|
expect(slack_client).to receive(:chat_unfurl)
|
||||||
|
.with(unflur_payload)
|
||||||
|
.and_raise(error)
|
||||||
|
|
||||||
|
expect(Rails.logger).to receive(:warn).with('Slack: Missing scope error: Missing required scope')
|
||||||
|
|
||||||
|
link_builder.link_unfurl(unflur_payload)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when message contains mentions' do
|
context 'when message contains mentions' do
|
||||||
|
|||||||
Reference in New Issue
Block a user