twilio-ccai-fulfillment-tools
Version:
A collection of tools to assist in the creation of Twilio CCAI Integration cards via fulfillment scripts
55 lines (50 loc) • 1.53 kB
text/typescript
import {
TMapContext,
TItemText,
createTextItem,
createDetail,
SIZES,
} from '..';
import { GoogleCloudDialogflowV2WebhookRequest } from 'actions-on-google';
export const addIntentsToMapContext = (
mapContext: TMapContext,
dfRequest: GoogleCloudDialogflowV2WebhookRequest
): TMapContext => {
const parameters = dfRequest.queryResult?.parameters;
if (parameters) {
const intentParams: TItemText[] = [];
Object.keys(parameters).forEach((param) => {
intentParams.push(
createTextItem({
title: `Intent Param: ${param}`,
data: parameters[param],
})
);
});
mapContext.parameters.sync_attributes.data[
'HELPERS_CURRENT_INTENT'
] = createDetail({
width: SIZES.THIRD,
items: [
createTextItem({
title: 'Current Intent',
data:
dfRequest.queryResult?.intent?.displayName ||
'No intent detected',
}),
],
});
mapContext.parameters.sync_attributes.data[
'HELPERS_INTENT_DETAILS'
] = createDetail({
width: SIZES.TWO_THIRD,
items:
intentParams ??
createTextItem({
title: 'Intent Params',
data: 'No parameters',
}),
});
}
return mapContext;
};