lexica-dialog-core
Version:
Core server for Lexica dialog agent.
29 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
const immutable_1 = require("immutable");
const Api_1 = require("../Api");
const Utils_1 = require("../Utils");
const fileRequestMiddleware = async (context, next) => {
const { uni, request, uniConfigs, intentRepository } = context;
if (!lodash_1.isNil(request) &&
!lodash_1.isNil(request.fileUrl) &&
request.message === undefined &&
uniConfigs.has(Api_1.RunTimeConfig.FILE_REQUEST_COMMAND_NAME)) {
const { locale } = request;
const command = uniConfigs.get(Api_1.RunTimeConfig.FILE_REQUEST_COMMAND_NAME).value;
const intent = await intentRepository.findByUniCommandName(uni, command);
if (!lodash_1.isNil(intent)) {
const responses = immutable_1.List(intent.responses.map(response => Utils_1.intentResponseToBotResponse(response, immutable_1.Map(), locale)));
context.responses = immutable_1.List(responses.toArray().reduce((a, b) => a.concat(b), immutable_1.List()));
}
else {
throw new Api_1.BotError(Api_1.BotErrorCode.INTENT_NOT_FOUND, 'Command not found: ' + command);
}
}
else {
await next();
}
};
exports.default = fileRequestMiddleware;
//# sourceMappingURL=FileRequestResponseMiddleware.js.map