@digitalstories/n8n-nodes-infomaniak
Version:
n8n nodes to interact with Infomaniak services (Kchat)
52 lines • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiService = void 0;
const n8n_workflow_1 = require("n8n-workflow");
class ApiService {
constructor(executeFunctions, credentials) {
this.executeFunctions = executeFunctions;
this.credentials = credentials;
}
async request(method, endpoint, body, query, formData, headers) {
const options = {
method,
url: `${this.getBaseUrl()}${endpoint}`,
json: true,
};
if (body)
options.body = body;
if (query)
options.qs = query;
if (formData)
options.formData = formData;
if (headers)
options.headers = headers;
try {
return await this.executeFunctions.helpers.requestWithAuthentication.call(this.executeFunctions, 'infomaniakApi', options);
}
catch (error) {
this.handleApiError(error);
}
}
handleApiError(error) {
const statusCode = error.statusCode || 'inconnu';
let message = error.message || 'Une erreur est survenue';
if (error.response && error.response.body) {
try {
const errorBody = typeof error.response.body === 'string'
? JSON.parse(error.response.body)
: error.response.body;
if (errorBody.message) {
message = `${message}: ${errorBody.message}`;
}
}
catch (e) {
}
}
throw new n8n_workflow_1.NodeOperationError(null, `Erreur API ${this.serviceName} (${statusCode}): ${message}`);
}
log(message, data) {
}
}
exports.ApiService = ApiService;
//# sourceMappingURL=ApiService.js.map