@alextomas80/api-client-grupeta
Version:
Cliente API Grupeta CBR
30 lines (26 loc) • 1.03 kB
text/typescript
export function createPopulateParams(fields: { name: string; fields: string[] }[]) {
return fields.map((field) => `populate[${field.name}][fields]=${field.fields.join(",")}`).join("&");
}
export function createSortingParams(sortings: { field: string; order: "asc" | "desc" }[]) {
return sortings.map(({ field, order }) => `sort=${order === "desc" ? "-" : ""}${field}`).join("&");
}
export function createFilterParams(filters: { [key: string]: string }) {
return Object.entries(filters)
.map(([key, value]) => `filter[${key}][_eq]=${encodeURIComponent(value)}`)
.join("&");
}
export function createComplexFilterParams(filters: { [key: string]: any }[]) {
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("&");
}