wa-chat-server
Version:
Watson Assistant powered chat server
64 lines (63 loc) • 2.87 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConversationAssistants = void 0;
const assistant_v1_1 = require("../adapters/assistant_v1");
const assistant_v2_1 = require("../adapters/assistant_v2");
class ConversationAssistants {
constructor(watsonAssistants, config, logger) {
this.conversationAdapters = {};
this.config = config;
this.logger = logger;
this.watsonAssistants = watsonAssistants;
for (const k in watsonAssistants) {
this.initConversationAdapter(watsonAssistants[k]);
}
}
initConversationAdapter(assistant) {
var _a;
if (this.config.token_service_url) {
this.conversationAdapters[assistant.alias] = assistant_v2_1.AssistantV2Adapter.initializeWithCp4dAuthenticator({
tokenServiceUsername: this.config.token_service_username,
tokenServicePassword: this.config.token_service_password,
tokenServiceApikey: this.config.token_service_apikey,
tokenServiceUrl: this.config.token_service_url,
serviceUrl: assistant.url,
timeout: assistant.timeout,
assistantId: assistant.id,
environmentId: assistant.environmentId,
withContext: true,
softRestart: String(this.config.soft_restart) === 'true',
}, this.logger);
}
else if (assistant.id) {
this.conversationAdapters[assistant.alias] = assistant_v2_1.AssistantV2Adapter.initializeWithIamAuthenticator({
apikey: assistant.apikey,
serviceUrl: assistant.url,
timeout: assistant.timeout,
assistantId: assistant.id,
environmentId: assistant.environmentId,
withContext: true,
softRestart: String(this.config.soft_restart) === 'true',
}, this.logger);
}
else if (this.config.assistant_password) {
this.conversationAdapters[assistant.alias] = new assistant_v1_1.AssistantV1Adapter({
url: this.config.assistant_url,
username: this.config.assistant_username,
passwordOrApikey: this.config.assistant_password,
workspaceId: (_a = this.config) === null || _a === void 0 ? void 0 : _a.assistant_workspace_id,
}, this.logger);
}
else {
this.logger.error('Credentials for watson assistant were found neither in connected services nor in env variables');
process.exit();
}
}
getMaster() {
return this.conversationAdapters['MASTER'];
}
conversationAdapter(runningAssistant) {
return this.conversationAdapters[runningAssistant];
}
}
exports.ConversationAssistants = ConversationAssistants;