58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
export const replaceVariablesInMessage = ({ message, variables }) => {
|
|
const regex = /{{(.*?)}}/g;
|
|
return message.replace(regex, (match, replace) => {
|
|
return variables[replace.trim()]
|
|
? variables[replace.trim().toLowerCase()]
|
|
: '';
|
|
});
|
|
};
|
|
|
|
export const getFirstName = ({ name }) => {
|
|
return name.split(' ')[0];
|
|
};
|
|
|
|
export const getLastName = ({ name }) => {
|
|
return name.split(' ').length > 1
|
|
? name.split(' ')[name.split(' ').length - 1]
|
|
: '';
|
|
};
|
|
|
|
export const getMessageVariables = ({ conversation }) => {
|
|
const {
|
|
meta: { assignee = {}, sender = {} },
|
|
id,
|
|
} = conversation;
|
|
|
|
return {
|
|
'contact.name': sender?.name,
|
|
'contact.first_name': getFirstName({ name: sender?.name }),
|
|
'contact.last_name': getLastName({ name: sender?.name }),
|
|
'contact.email': sender?.email,
|
|
'contact.phone': sender?.phone_number,
|
|
'conversation.id': id,
|
|
'agent.name': assignee?.name ? assignee?.name : '',
|
|
'agent.first_name': assignee?.name
|
|
? getFirstName({ name: assignee?.name })
|
|
: '',
|
|
'agent.last_name': assignee?.name
|
|
? getLastName({ name: assignee?.name })
|
|
: '',
|
|
'agent.email': assignee?.email ? assignee?.email : '',
|
|
};
|
|
};
|
|
|
|
export const getUndefinedVariablesInMessage = ({ message, variables }) => {
|
|
const regex = /{{(.*?)}}/g;
|
|
const matches = message.match(regex);
|
|
const undefinedVariables = [];
|
|
matches.forEach(match => {
|
|
const variable = match
|
|
.replace('{{', '')
|
|
.replace('}}', '')
|
|
.trim();
|
|
if (!variables[variable]) {
|
|
undefinedVariables.push(match);
|
|
}
|
|
});
|
|
return undefinedVariables;
|
|
};
|