@negreanucalin8x8/n8n-nodes-8x8
Version:
This is a Work in progress
63 lines • 2.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RequestHelper = void 0;
const apiDef_helper_1 = require("./apiDef.helper");
class RequestHelper {
replacePlaceholders(template, data) {
return template.replace(/{(\w+)}/g, (_, key) => {
if (key in data)
return data[key];
return `{${key}}`;
});
}
buildRequest(resource, operation, uriParams, formParams) {
const baseReq = {
headers: {
Accept: "application/json",
},
json: true,
};
const baseOperationConfig = apiDef_helper_1.ApiDefHelper.getResource(resource);
const operationConfig = apiDef_helper_1.ApiDefHelper.getOperation(resource, operation);
baseReq.uri = this.replacePlaceholders(baseOperationConfig.base + operationConfig.uri, uriParams);
baseReq.method = operationConfig.method;
if (["POST", "PUT"].includes(baseReq.method || '')) {
baseReq.body = formParams;
}
return baseReq;
}
static getCleanFormData(formParams) {
var _a;
const cleanValue = (value) => {
if (typeof value === 'string') {
const trimmed = value.trim();
return trimmed === '' ? undefined : trimmed;
}
if (Array.isArray(value)) {
const cleanedArray = value
.map(cleanValue)
.filter(v => v !== undefined);
return cleanedArray.length > 0 ? cleanedArray : undefined;
}
if (typeof value === 'object' && value !== null) {
const cleanedObject = {};
for (const key in value) {
const cleaned = cleanValue(value[key]);
if (cleaned !== undefined) {
cleanedObject[key] = cleaned;
}
}
return Object.keys(cleanedObject).length > 0 ? cleanedObject : undefined;
}
return value;
};
return (_a = cleanValue(formParams)) !== null && _a !== void 0 ? _a : {};
}
getAllUriParams(resource, operation) {
const operationDef = apiDef_helper_1.ApiDefHelper.getOperation(resource, operation);
const str = apiDef_helper_1.ApiDefHelper.getResource(resource).base + operationDef.uri;
return [...str.matchAll(/{(.*?)}/g)].map(m => m[1]);
}
}
exports.RequestHelper = RequestHelper;
//# sourceMappingURL=request.helper.js.map