feat: Send MMS through Twilio Inbox (#2959)
Send MMS message to customer for Twilio integration inbox. Fixes #2311
This commit is contained in:
parent
118c1458ab
commit
772d4ae726
3 changed files with 23 additions and 3 deletions
|
@ -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() {
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue