65 lines
1.2 KiB
JavaScript
65 lines
1.2 KiB
JavaScript
const { recognizedObject: r = {} } = this;
|
|
|
|
class WebdisConsole {
|
|
constructor() {}
|
|
|
|
log(...data) {
|
|
this.info(data);
|
|
}
|
|
|
|
debug(...data) {
|
|
this.#log("DEBUG", data);
|
|
}
|
|
|
|
info(...data) {
|
|
this.#log("INFO", data);
|
|
}
|
|
|
|
warn(...data) {
|
|
this.#log("WARN", data);
|
|
}
|
|
|
|
error(...data) {
|
|
this.#log("ERROR", data);
|
|
}
|
|
|
|
input(...data) {
|
|
this.#log("INPUT", data);
|
|
}
|
|
|
|
answer(...data) {
|
|
this.#log("ANSWER", data);
|
|
}
|
|
|
|
#publishToWebdis(channel, message) {
|
|
const webdisBaseURL = "https://iva.mortons.site/webdis/";
|
|
|
|
const str = JSON.stringify(message);
|
|
const encodedStr = buffer.Buffer.from(str).toString("base64");
|
|
let escapedStr = encodedStr.replace(/\//g, "%2f");
|
|
escapedStr = escapedStr.replace(/\+/g, "%2B");
|
|
|
|
axios.post(webdisBaseURL, `PUBLISH/${channel}/${escapedStr}`);
|
|
}
|
|
|
|
#log(level, ...data) {
|
|
try {
|
|
this.#publishToWebdis(r.workspaceId + ".console", {
|
|
conversationId: r.conversationId,
|
|
data: JSON.stringify(data),
|
|
level: level,
|
|
});
|
|
} catch (error) {
|
|
r.errorInfo = {
|
|
...r.errorInfo,
|
|
label: {
|
|
data: error.toJSON ? error.toJSON() : {},
|
|
message: error.message,
|
|
},
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
return new WebdisConsole();
|