Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e62de127c | ||
|
|
bf08274712 | ||
|
|
1ded5bfc13 | ||
|
|
c5915203fc |
@@ -144,6 +144,7 @@ import { FEATURE_FLAGS } from 'dashboard/featureFlags';
|
|||||||
import {
|
import {
|
||||||
ALLOWED_FILE_TYPES,
|
ALLOWED_FILE_TYPES,
|
||||||
ALLOWED_FILE_TYPES_FOR_TWILIO_WHATSAPP,
|
ALLOWED_FILE_TYPES_FOR_TWILIO_WHATSAPP,
|
||||||
|
ALLOWED_FILE_TYPES_FOR_LINE,
|
||||||
} from 'shared/constants/messages';
|
} from 'shared/constants/messages';
|
||||||
import VideoCallButton from '../VideoCallButton.vue';
|
import VideoCallButton from '../VideoCallButton.vue';
|
||||||
import AIAssistanceButton from '../AIAssistanceButton.vue';
|
import AIAssistanceButton from '../AIAssistanceButton.vue';
|
||||||
@@ -270,6 +271,9 @@ export default {
|
|||||||
return this.showFileUpload || this.isNote;
|
return this.showFileUpload || this.isNote;
|
||||||
},
|
},
|
||||||
showAudioRecorderButton() {
|
showAudioRecorderButton() {
|
||||||
|
if (this.isALineChannel) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
// Disable audio recorder for safari browser as recording is not supported
|
// Disable audio recorder for safari browser as recording is not supported
|
||||||
const isSafari = /^((?!chrome|android|crios|fxios).)*safari/i.test(
|
const isSafari = /^((?!chrome|android|crios|fxios).)*safari/i.test(
|
||||||
navigator.userAgent
|
navigator.userAgent
|
||||||
@@ -291,6 +295,9 @@ export default {
|
|||||||
if (this.isATwilioWhatsAppChannel) {
|
if (this.isATwilioWhatsAppChannel) {
|
||||||
return ALLOWED_FILE_TYPES_FOR_TWILIO_WHATSAPP;
|
return ALLOWED_FILE_TYPES_FOR_TWILIO_WHATSAPP;
|
||||||
}
|
}
|
||||||
|
if (this.isALineChannel) {
|
||||||
|
return ALLOWED_FILE_TYPES_FOR_LINE;
|
||||||
|
}
|
||||||
return ALLOWED_FILE_TYPES;
|
return ALLOWED_FILE_TYPES;
|
||||||
},
|
},
|
||||||
enableDragAndDrop() {
|
enableDragAndDrop() {
|
||||||
|
|||||||
@@ -392,7 +392,8 @@ export default {
|
|||||||
this.isAPIInbox ||
|
this.isAPIInbox ||
|
||||||
this.isAnEmailChannel ||
|
this.isAnEmailChannel ||
|
||||||
this.isASmsInbox ||
|
this.isASmsInbox ||
|
||||||
this.isATelegramChannel
|
this.isATelegramChannel ||
|
||||||
|
this.isALineChannel
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
replyButtonLabel() {
|
replyButtonLabel() {
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ export const ALLOWED_FILE_TYPES_FOR_TWILIO_WHATSAPP =
|
|||||||
'audio/mpeg, audio/opus, audio/ogg, audio/amr,' +
|
'audio/mpeg, audio/opus, audio/ogg, audio/amr,' +
|
||||||
'video/mp4,' +
|
'video/mp4,' +
|
||||||
'application/pdf,';
|
'application/pdf,';
|
||||||
|
// https://developers.line.biz/en/reference/messaging-api/#image-message, https://developers.line.biz/en/reference/messaging-api/#video-message
|
||||||
|
export const ALLOWED_FILE_TYPES_FOR_LINE = 'image/png, image/jpeg,video/mp4';
|
||||||
|
|
||||||
export const CSAT_RATINGS = [
|
export const CSAT_RATINGS = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ class Line::SendOnLineService < Base::SendOnChannelService
|
|||||||
end
|
end
|
||||||
|
|
||||||
def perform_reply
|
def perform_reply
|
||||||
response = channel.client.push_message(message.conversation.contact_inbox.source_id, [{ type: 'text', text: message.content }])
|
response = channel.client.push_message(message.conversation.contact_inbox.source_id, build_payload)
|
||||||
|
|
||||||
return if response.blank?
|
return if response.blank?
|
||||||
|
|
||||||
parsed_json = JSON.parse(response.body)
|
parsed_json = JSON.parse(response.body)
|
||||||
@@ -20,6 +21,36 @@ class Line::SendOnLineService < Base::SendOnChannelService
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def build_payload
|
||||||
|
if message.content && message.attachments.any?
|
||||||
|
[text_message, *attachments]
|
||||||
|
elsif message.content.nil? && message.attachments.any?
|
||||||
|
attachments
|
||||||
|
else
|
||||||
|
text_message
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def attachments
|
||||||
|
message.attachments.map do |attachment|
|
||||||
|
# Support only image and video for now
|
||||||
|
next unless attachment.file_type == 'image' || attachment.file_type == 'video'
|
||||||
|
|
||||||
|
{
|
||||||
|
type: attachment.file_type,
|
||||||
|
originalContentUrl: attachment.download_url,
|
||||||
|
previewImageUrl: attachment.download_url
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def text_message
|
||||||
|
{
|
||||||
|
type: 'text',
|
||||||
|
text: message.content
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
# https://developers.line.biz/en/reference/messaging-api/#error-responses
|
# https://developers.line.biz/en/reference/messaging-api/#error-responses
|
||||||
def external_error(error)
|
def external_error(error)
|
||||||
# Message containing information about the error. See https://developers.line.biz/en/reference/messaging-api/#error-messages
|
# Message containing information about the error. See https://developers.line.biz/en/reference/messaging-api/#error-messages
|
||||||
|
|||||||
Reference in New Issue
Block a user