lexica-dialog-core
Version:
Core server for Lexica dialog agent.
33 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
const Message_1 = require("lexica-dialog-model/dist/Message");
const responseMessageLoggingMiddleware = async (context, next) => {
await next();
const { uni, messenger, request, sessionService, messageRepository, logger, responses, rawResponses, issue, } = context;
if (!lodash_1.isNil(request) && !lodash_1.isNil(sessionService) && !lodash_1.isNil(responses) && !lodash_1.isNil(rawResponses)) {
let promises;
const baseResponseMessage = {
date: new Date(),
issueId: !lodash_1.isNil(issue) ? issue.id : undefined,
messenger: messenger.name,
senderId: request.senderId,
sessionId: sessionService.getSessionId(),
type: Message_1.MessageType.RESPONSE,
uni,
};
if (responses.size === rawResponses.size) {
promises = Promise.all(responses.toArray().map((response, index) => {
return messageRepository.create(Object.assign({}, baseResponseMessage, { rawResponse: rawResponses.get(index), response }));
}));
}
else {
promises = Promise.all(responses.toArray().map((response, index) => {
return messageRepository.create(Object.assign({}, baseResponseMessage, { rawResponse: rawResponses.toObject(), response }));
}));
}
promises.catch(err => logger.error('Create response message with error', err));
}
};
exports.default = responseMessageLoggingMiddleware;
//# sourceMappingURL=ResponseMessageLoggingMiddleware.js.map