n8n-walichat
Version:
n8n plugin for WaliChat
63 lines (62 loc) • 2.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseNode = void 0;
const axios_1 = __importDefault(require("axios"));
const methods_1 = require("../methods");
class BaseNode {
constructor() {
this.baseUrl = 'https://api.wali.chat/v1';
this.methods = {
loadOptions: {
getFiles: methods_1.getFiles,
getDevices: methods_1.getDevices,
getGroups: methods_1.getGroups
},
};
}
async request(params) {
var _a;
const { method = 'POST', body, query, path, headers } = params;
const config = {
method,
url: `${this.baseUrl}${path}`,
headers: {
'Content-Type': 'application/json',
...headers,
},
data: body,
params: query,
};
try {
const response = await (0, axios_1.default)(config);
return response.data;
}
catch (error) {
let errorMessage = 'Unknown error';
if (axios_1.default.isAxiosError(error)) {
if ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) {
// Include status code and error data for better debugging:
errorMessage = `HTTP Error ${error.response.status}: ${JSON.stringify(error.response.data)}`;
}
else if (error.request) {
errorMessage = 'No response received from the API.';
}
else {
errorMessage = error.message;
}
}
else {
errorMessage = error.message;
}
throw new Error(errorMessage);
}
}
async execute(node) {
// This method should be overridden by the inheriting class
throw new Error('Execute method not implemented');
}
}
exports.BaseNode = BaseNode;