conversation-analytics-client
Version:
The client library to aggregate information for the conversation analytics.
59 lines • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const uuid = require("uuid/v4");
const GENERATED_USER_ID = '__conversation_analytics_user_id__';
class ActionsOnGoogleFactory {
createPayload(data, userId) {
const payload = {
conversation_id: data.id,
request: {
available_surfaces: data.request.availableSurfaces ?
data.request.availableSurfaces[0].capabilities.map((capability) => capability.name)
: undefined,
surfaces: data.request.surface ?
data.request.surface.capabilities.map((capability) => capability.name)
: undefined,
is_in_sandbox: data.request.isInSandbox,
intent_name: data.intent || data.request.inputs[0].intent,
raw_input: data.request.inputs[0].rawInputs[0],
arguments: JSON.stringify(data.request.inputs[0].arguments),
location: data.request.device ? data.request.device.location : undefined,
user: data.request.user
},
contexts_input: data.contexts ?
data.contexts.input
: undefined,
expect_user_response: data.expectUserResponse,
sandbox: data.sandbox,
conversation_type: data.type,
responses: JSON.stringify(data.responses),
no_inputs: JSON.stringify(data.noInputs),
speech_biasing: data.speechBiasing
};
this.setUserId(data, payload, userId);
return payload;
}
setUserId(data, payload, isSetUserId) {
if (isSetUserId) {
let generatedUserId = data.user.storage[GENERATED_USER_ID];
if (!generatedUserId) {
generatedUserId = uuid();
data.user.storage[GENERATED_USER_ID] = generatedUserId;
}
payload.generatedUserId = generatedUserId;
}
}
create(header, data, userId) {
const dialogData = {
header,
payload: this.createPayload(data, userId),
extra: {}
};
return dialogData;
}
isHealthCheck(data) {
return data.arguments.get('is_health_check');
}
}
exports.default = ActionsOnGoogleFactory;
//# sourceMappingURL=actions-on-google.js.map