UNPKG

@tencentcloud/ai-desk-customer-wechat

Version:

AI Desk customer UIKit for wechat mini program

114 lines (113 loc) 4.55 kB
"use strict"; var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; const common_vendor = require("../common/vendor.js"); const aiDeskCustomerUniapp_utils_index = require("./utils/index.js"); const aiDeskCustomerUniapp_utils_logger = require("./utils/logger.js"); const _TUICustomerServer = class _TUICustomerServer { constructor() { __publicField(this, "customerServiceAccounts"); common_vendor.R.registerService(common_vendor.E.TUICustomerServicePlugin.SERVICE.NAME, this); common_vendor.R.registerExtension(common_vendor.E.TUIContact.EXTENSION.CONTACT_LIST.EXT_ID, this); this.customerServiceAccounts = ["@customer_service_account"]; } static getInstance() { if (!_TUICustomerServer.instance) { _TUICustomerServer.instance = new _TUICustomerServer(); } return _TUICustomerServer.instance; } static loginCustomerUIKit(SDKAppID, userID, userSig) { aiDeskCustomerUniapp_utils_index.clearChatStorage(SDKAppID, userID); common_vendor.qt.login({ SDKAppID, userID, userSig, useUploadPlugin: true }).then(() => { aiDeskCustomerUniapp_utils_logger.Log.i(`login success. userID:${userID}`); _TUICustomerServer.loggedInUserID = userID; common_vendor.Xt.switchConversation("C2C@customer_service_account"); common_vendor.qt.chat.callExperimentalAPI("isFeatureEnabledForStat", Math.pow(2, 42)); }).catch((error) => { aiDeskCustomerUniapp_utils_logger.Log.l(error); }); } /** * init */ static init(SDKAppID, userID, userSig) { aiDeskCustomerUniapp_utils_logger.Log.l(`TUICustomerServer.init SDKAppID:${SDKAppID} userID:${userID} isInitialized:${_TUICustomerServer.isInitialized} loggedInUserID:${_TUICustomerServer.loggedInUserID}`); if (_TUICustomerServer.isInitialized) { if (_TUICustomerServer.loggedInUserID === userID) { return; } _TUICustomerServer.unInit().finally(() => { this.loginCustomerUIKit(SDKAppID, userID, userSig); }); } else { _TUICustomerServer.isInitialized = true; this.loginCustomerUIKit(SDKAppID, userID, userSig); } } static async unInit() { return common_vendor.qt.logout(); } // Determine if the current session is a customer service session isCustomerConversation(conversationID) { const userID = conversationID && conversationID.slice(3) || ""; return this.customerServiceAccounts.indexOf(userID) > -1; } // Determine if the current message is a customer service message isCustomerServicePluginMessage(message) { if (!message || !this.isCustomerConversation(message.conversationID)) { return false; } if (aiDeskCustomerUniapp_utils_index.isThinkingMessage(message)) { return false; } return aiDeskCustomerUniapp_utils_index.isCustomerServiceMessage(message) || aiDeskCustomerUniapp_utils_index.isMessageInvisible(message); } onGetExtension(extensionID) { if (extensionID === common_vendor.E.TUIContact.EXTENSION.CONTACT_LIST.EXT_ID) { return [ { weight: 0, icon: "", text: "智能客服", data: { name: "customer", accountList: this.customerServiceAccounts } } ]; } } onCall(method, params) { aiDeskCustomerUniapp_utils_logger.Log.l(`TUICustomerServer.onCall method:${method} params:`, params); if (method === common_vendor.E.TUICustomerServicePlugin.SERVICE.METHOD.ACTIVE_CONVERSATION) { if (this.isCustomerConversation(params.conversationID)) { common_vendor.Qt.sendCustomMessage({ to: params.conversationID.slice(3), conversationType: common_vendor.qt.TYPES.CONV_C2C, payload: { data: JSON.stringify({ src: "7", customerServicePlugin: 0, triggeredContent: typeof params.robotLang === "undefined" ? void 0 : { language: params.robotLang } }) } }, { onlineUserOnly: true }); } } } }; __publicField(_TUICustomerServer, "isInitialized"); __publicField(_TUICustomerServer, "instance"); __publicField(_TUICustomerServer, "loggedInUserID"); let TUICustomerServer = _TUICustomerServer; exports.TUICustomerServer = TUICustomerServer;