feat: Send MMS through Twilio Inbox (#2959)

Send MMS message to customer for Twilio integration inbox.

Fixes #2311
This commit is contained in:
Tejaswini Chile 2021-09-07 00:05:14 +05:30 committed by GitHub
parent 118c1458ab
commit 772d4ae726
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 3 deletions

View file

@ -229,7 +229,8 @@ export default {
this.isAFacebookInbox ||
this.isATwilioWhatsappChannel ||
this.isAPIInbox ||
this.isAnEmailChannel
this.isAnEmailChannel ||
this.isATwilioSMSChannel
);
},
replyButtonLabel() {

View file

@ -6,7 +6,11 @@ class Twilio::SendOnTwilioService < Base::SendOnChannelService
end
def perform_reply
twilio_message = client.messages.create(**message_params)
begin
twilio_message = client.messages.create(**message_params)
rescue Twilio::REST::TwilioError => e
Rails.logger.info "Twilio Error: #{e.message}"
end
message.update!(source_id: twilio_message.sid)
end
@ -16,7 +20,7 @@ class Twilio::SendOnTwilioService < Base::SendOnChannelService
from: channel.phone_number,
to: contact_inbox.source_id
}
params[:media_url] = attachments if channel.whatsapp? && message.attachments.present?
params[:media_url] = attachments if message.attachments.present?
params
end

View file

@ -77,5 +77,20 @@ describe Twilio::SendOnTwilioService do
::Twilio::SendOnTwilioService.new(message: message).perform
end
it 'if outgoing message has attachment and is for sms' do
# check for message attachment url
allow(messages_double).to receive(:create).with(hash_including(media_url: [anything])).and_return(message_record_double)
allow(message_record_double).to receive(:sid).and_return('1234')
message = build(
:message, message_type: 'outgoing', inbox: twilio_inbox, account: account, conversation: conversation
)
attachment = message.attachments.new(account_id: message.account_id, file_type: :image)
attachment.file.attach(io: File.open(Rails.root.join('spec/assets/avatar.png')), filename: 'avatar.png', content_type: 'image/png')
message.save!
::Twilio::SendOnTwilioService.new(message: message).perform
end
end
end