@alextomas80/api-client-grupeta
Version:
Cliente API Grupeta CBR
33 lines (32 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPopulateParams = createPopulateParams;
exports.createSortingParams = createSortingParams;
exports.createFilterParams = createFilterParams;
exports.createComplexFilterParams = createComplexFilterParams;
function createPopulateParams(fields) {
return fields.map((field) => `populate[${field.name}][fields]=${field.fields.join(",")}`).join("&");
}
function createSortingParams(sortings) {
return sortings.map(({ field, order }) => `sort=${order === "desc" ? "-" : ""}${field}`).join("&");
}
function createFilterParams(filters) {
return Object.entries(filters)
.map(([key, value]) => `filter[${key}][_eq]=${encodeURIComponent(value)}`)
.join("&");
}
function createComplexFilterParams(filters) {
return filters
.map((filter, index) => {
return Object.entries(filter)
.map(([key, value]) => {
const filterPath = key
.split(".")
.map((part) => `[${part}]`)
.join("");
return `filter[_or][${index}]${filterPath}[_eq]=${value}`;
})
.join("&");
})
.join("&");
}