prodap-chatbot-metricas
Version:
Biblioteca reponsável por capturar as métricas das Cloud Functions do Assistente Virtual
49 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Routes = exports.Origin = exports.Classification = void 0;
exports.criarMetricaLore = criarMetricaLore;
const pubsub_1 = require("@google-cloud/pubsub");
const util_1 = require("./util");
const types_1 = require("./types");
Object.defineProperty(exports, "Classification", { enumerable: true, get: function () { return types_1.Classification; } });
Object.defineProperty(exports, "Origin", { enumerable: true, get: function () { return types_1.Origin; } });
Object.defineProperty(exports, "Routes", { enumerable: true, get: function () { return types_1.Routes; } });
const pubsub = new pubsub_1.PubSub({
projectId: process.env.PROJECT_ID || 'prodap-testes-eds'
});
const topicIntance = pubsub.topic('metrica', { batching: { maxMessages: 1 } });
async function criarMetricaLore(metricaProps, maxMessages) {
const metrica = {
codigo: (0, util_1.uniqueID)(),
versao: 1,
app: 'lore',
tipo: 'utilizacao',
intencao: metricaProps.intencao,
versaoFuncao: metricaProps.versaoFuncao,
idFazenda: metricaProps.idFazenda,
usuario: metricaProps.usuario,
dataOcorrencia: new Date(),
codigoDialogo: metricaProps.codigoDialogo,
idSessao: metricaProps.idSessao,
interacao: metricaProps.interacao,
rota: metricaProps.rota,
expoToken: metricaProps.expoToken,
idFazendaGA: metricaProps.idFazendaGA,
interacaoApp: metricaProps.interacaoApp === true ? true : false,
categoria: metricaProps.categoria,
origem: metricaProps.origem,
classificacao: metricaProps.classificacao,
origemRecomendacao: metricaProps.origemRecomendacao,
};
const mensagem = Buffer.from(JSON.stringify(metrica), 'utf-8');
try {
const topic = maxMessages
? pubsub.topic('metrica', { batching: { maxMessages: maxMessages } })
: topicIntance;
topic.publishMessage({ data: mensagem });
}
catch (err) {
console.error(err);
}
}
//# sourceMappingURL=index.js.map