123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { customerServicePayloadType, IMessageModel } from '../interface';
- import { CUSTOM_MESSAGE_SRC, TYPES } from '../constant';
- // Determine if it is a JSON string
- export function isJSON(str: string): boolean {
- // eslint-disable-next-line no-useless-escape
- if (typeof str === 'string') {
- try {
- const data = JSON.parse(str);
- if (data) {
- return true;
- }
- return false;
- } catch (error: any) {
- return false;
- }
- }
- return false;
- }
- // Determine if it is a JSON string
- export function JSONToObject(str: string) {
- if (!isJSON(str)) {
- return str;
- }
- return JSON.parse(str);
- }
- export function isCustomerServiceMessage(message: IMessageModel): boolean {
- const customerServicePayload: customerServicePayloadType = JSONToObject(message?.payload?.data);
- return Number(customerServicePayload?.customerServicePlugin) === 0 || Number(customerServicePayload?.chatbotPlugin) === 1;
- }
- export const isMessageRating = (message: IMessageModel): boolean => {
- const customerServicePayload: customerServicePayloadType = JSONToObject(message?.payload?.data);
- return isCustomerServiceMessage(message) && customerServicePayload.src === CUSTOM_MESSAGE_SRC.MENU;
- };
- export const isMessageInvisible = (message: IMessageModel): boolean => {
- const customerServicePayload: customerServicePayloadType = JSONToObject(message?.payload?.data);
- const robotCommandArray = ['feedback', 'updateBotStatus'];
- const whiteList = [
- CUSTOM_MESSAGE_SRC.MENU,
- CUSTOM_MESSAGE_SRC.BRANCH,
- CUSTOM_MESSAGE_SRC.BRANCH_NUMBER,
- CUSTOM_MESSAGE_SRC.FROM_INPUT,
- CUSTOM_MESSAGE_SRC.PRODUCT_CARD,
- ];
- const isCustomerMessage = message?.type === TYPES.MSG_CUSTOM;
- const isExistWhiteList = whiteList.includes(customerServicePayload?.src);
- const isRobot = customerServicePayload?.src === CUSTOM_MESSAGE_SRC.ROBOT && robotCommandArray.indexOf(customerServicePayload?.content?.command) !== -1;
- return isCustomerMessage && (!isExistWhiteList || isRobot);
- };
|