lexica-dialog-core
Version:
Core server for Lexica dialog agent.
42 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
const Message_1 = require("lexica-dialog-model/dist/Message");
const requestMessageLoggingMiddleware = async (context, next) => {
const { uni, messenger, request, sessionService, messageRepository, issueRepository, logger, rawRequest, commands, issue, } = context;
if (!lodash_1.isNil(request) && !lodash_1.isNil(sessionService)) {
const date = new Date();
let logRequest;
if (request.type === Message_1.RequestType.TEXT) {
logRequest = {
message: lodash_1.defaultTo(request.message, ''),
type: Message_1.RequestType.TEXT,
};
}
else {
logRequest = {
contentType: lodash_1.defaultTo(request.fileContentType, ''),
path: lodash_1.defaultTo(request.fileStoredPath, ''),
type: request.type,
};
}
context.requestMessage = (await messageRepository.create({
date,
issueId: !lodash_1.isNil(issue) ? issue.id : undefined,
messenger: messenger.name,
rawRequest,
request: logRequest,
senderId: request.senderId,
sessionId: sessionService.getSessionId(),
type: Message_1.MessageType.REQUEST,
uni,
}));
if (!lodash_1.isNil(issue)) {
issue.lastUpdatedDate = date;
context.issue = await issueRepository.save(issue);
}
}
await next();
};
exports.default = requestMessageLoggingMiddleware;
//# sourceMappingURL=RequestMessageLoggingMiddleware.js.map