asksuite-core
Version:
55 lines (49 loc) • 1.4 kB
JavaScript
function isChangeLanguageFacebook(postback) {
try {
const data = JSON.parse(JSON.parse(postback.payload.split('=')[1]).data);
return Object.keys(data).length === 1 && data.language != null;
} catch (e) {
return false;
}
}
module.exports = {
get: item => {
if (!item) {
return {};
}
return {
dialog: item.defaultDialog || item.dialog,
events: item.events,
};
},
getFromType: message => {
const BUTTON_TAG = 'botaction?';
if (message) {
if (message.type === 'open_chat' || message.fromType === 'open_chat') {
return 'open_chat';
} else if (
message.event &&
message.event.action &&
message.event.action.includes(BUTTON_TAG)
) {
// Button MsBot
return 'button';
} else if (message.quick_reply) {
// Button Facebook
return 'button';
} else if (message.type === 'button' || message.fromType === 'button') {
// Button Whatsapp
return 'button';
} else if (message.type === 'form' || message.fromType === 'form') {
return 'form';
} else if (message.postback && process.env.PLATFORM === 'facebook') {
if (isChangeLanguageFacebook(message.postback)) {
// Change Language Facebook
return 'change_language';
}
return 'button';
}
}
return 'text';
},
};