UNPKG

wa-chat-server

Version:

Watson Assistant powered chat server

44 lines (43 loc) 2.58 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.processMessage = processMessage; const Route_1 = require("../class/Route/Route"); const WatsonWrapper_1 = require("../class/WatsonWrapper"); function processMessage(_a) { return __awaiter(this, arguments, void 0, function* ({ session, watsonAssistants, preProcessingServices, postProcessingServices, conversationServices, payload, meta = null, config, logger, }) { var _b; let watson = new WatsonWrapper_1.WatsonWrapper(logger, watsonAssistants.conversationAdapter(session.runningAssistant), conversationServices, preProcessingServices, postProcessingServices, payload, meta, session); let newPayload = yield watson.getResponse(); session.updateContext(newPayload); let routeContext = { target: false, }; if (((_b = newPayload === null || newPayload === void 0 ? void 0 : newPayload.result) === null || _b === void 0 ? void 0 : _b.context['route-target']) && config.routing_enabled) { const route = new Route_1.Route(newPayload, session, config, logger); yield route.route(); routeContext = route.routeContext; watson = new WatsonWrapper_1.WatsonWrapper(logger, watsonAssistants.conversationAdapter(session.runningAssistant), conversationServices, preProcessingServices, postProcessingServices, route.newPayload.result, meta, session); newPayload = yield watson.getResponse(); newPayload.result.output.generic = [ ...route.messagesBeforeRouting, ...newPayload.result.output.generic, ]; session.updateContext(newPayload); } yield session.save(); const response = { newPayload: newPayload, addons: { route: routeContext }, }; return response; }); }