Skip to content

Commit

Permalink
feat: Send MMS through Twilio Inbox (#2959)
Browse files Browse the repository at this point in the history
Send MMS message to customer for Twilio integration inbox.

Fixes #2311
  • Loading branch information
tejaswinichile committed Sep 6, 2021
1 parent 118c145 commit 772d4ae
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
Expand Up @@ -229,7 +229,8 @@ export default {
this.isAFacebookInbox ||
this.isATwilioWhatsappChannel ||
this.isAPIInbox ||
this.isAnEmailChannel
this.isAnEmailChannel ||
this.isATwilioSMSChannel
);
},
replyButtonLabel() {
Expand Down
8 changes: 6 additions & 2 deletions app/services/twilio/send_on_twilio_service.rb
Expand Up @@ -6,7 +6,11 @@ def channel_class
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

Expand All @@ -16,7 +20,7 @@ def message_params
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

Expand Down
15 changes: 15 additions & 0 deletions spec/services/twilio/send_on_twilio_service_spec.rb
Expand Up @@ -77,5 +77,20 @@

::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

0 comments on commit 772d4ae

Please sign in to comment.