diff --git a/app/models/channel/facebook_page.rb b/app/models/channel/facebook_page.rb index ce5f5d221..1755889f8 100644 --- a/app/models/channel/facebook_page.rb +++ b/app/models/channel/facebook_page.rb @@ -63,22 +63,4 @@ class Channel::FacebookPage < ApplicationRecord Rails.logger.debug { "Rescued: #{e.inspect}" } true end - - # TODO: We will be removing this code after instagram_manage_insights is implemented - def fetch_instagram_story_link(message) - k = Koala::Facebook::API.new(page_access_token) - result = k.get_object(message.source_id, fields: %w[story]) || {} - story_link = result['story']['mention']['link'] - # If the story is expired then it raises the ClientError and if the story is deleted with valid story-id it responses with nil - delete_instagram_story(message) if story_link.blank? - story_link - rescue Koala::Facebook::ClientError => e - Rails.logger.debug { "Instagram Story Expired: #{e.inspect}" } - delete_instagram_story(message) - end - - def delete_instagram_story(message) - message.attachments.destroy_all - message.update(content: I18n.t('conversations.messages.instagram_deleted_story_content'), content_attributes: {}) - end end diff --git a/app/models/message.rb b/app/models/message.rb index 6244d050c..20dad7403 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -155,15 +155,6 @@ class Message < ApplicationRecord } end - # TODO: We will be removing this code after instagram_manage_insights is implemented - # Better logic is to listen to webhook and remove stories proactively rather than trying - # a fetch every time a message is returned - def validate_instagram_story - inbox.channel.fetch_instagram_story_link(self) - # we want to reload the message in case the story has expired and data got removed - reload - end - def merge_sender_attributes(data) data[:sender] = sender.push_event_data if sender && !sender.is_a?(AgentBot) data[:sender] = sender.push_event_data(inbox) if sender.is_a?(AgentBot) diff --git a/spec/models/channel/facebook_page_spec.rb b/spec/models/channel/facebook_page_spec.rb index 5f1374afe..f0f0e036e 100644 --- a/spec/models/channel/facebook_page_spec.rb +++ b/spec/models/channel/facebook_page_spec.rb @@ -30,42 +30,6 @@ RSpec.describe Channel::FacebookPage do channel.prompt_reauthorization! end end - - context 'when fetch instagram story' do - let!(:account) { create(:account) } - let!(:instagram_channel) { create(:channel_instagram_fb_page, account: account, instagram_id: 'chatwoot-app-user-id-1') } - let!(:instagram_inbox) { create(:inbox, channel: instagram_channel, account: account, greeting_enabled: false) } - let(:fb_object) { double } - let(:message) { create(:message, inbox_id: instagram_inbox.id) } - let(:instagram_message) { create(:message, :instagram_story_mention, inbox_id: instagram_inbox.id) } - - it '#fetch_instagram_story_link' do - allow(Koala::Facebook::API).to receive(:new).and_return(fb_object) - allow(fb_object).to receive(:get_object).and_return( - { story: - { - mention: { - link: 'https://www.example.com/test.jpeg', - id: '17920786367196703' - } - }, - from: { - username: 'Sender-id-1', id: 'Sender-id-1' - }, - id: 'instagram-message-id-1234' }.with_indifferent_access - ) - story_link = instagram_channel.fetch_instagram_story_link(message) - expect(story_link).to eq('https://www.example.com/test.jpeg') - end - - it '#delete_instagram_story' do - expect(instagram_message.attachments.count).to eq(1) - - instagram_channel.delete_instagram_story(instagram_message) - - expect(instagram_message.attachments.count).to eq(0) - end - end end it 'has a valid name' do