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.isAFacebookInbox ||
this.isATwilioWhatsappChannel || this.isATwilioWhatsappChannel ||
this.isAPIInbox || this.isAPIInbox ||
this.isAnEmailChannel this.isAnEmailChannel ||
this.isATwilioSMSChannel
); );
}, },
replyButtonLabel() { replyButtonLabel() {

View file

@ -6,7 +6,11 @@ class Twilio::SendOnTwilioService < Base::SendOnChannelService
end end
def perform_reply 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) message.update!(source_id: twilio_message.sid)
end end
@ -16,7 +20,7 @@ class Twilio::SendOnTwilioService < Base::SendOnChannelService
from: channel.phone_number, from: channel.phone_number,
to: contact_inbox.source_id to: contact_inbox.source_id
} }
params[:media_url] = attachments if channel.whatsapp? && message.attachments.present? params[:media_url] = attachments if message.attachments.present?
params params
end end

View file

@ -77,5 +77,20 @@ describe Twilio::SendOnTwilioService do
::Twilio::SendOnTwilioService.new(message: message).perform ::Twilio::SendOnTwilioService.new(message: message).perform
end 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
end end