pagamio-frontend-commons-lib
Version:
Pagamio library for Frontend reusable components like the form engine and table container
59 lines (58 loc) • 1.68 kB
JavaScript
export const createQueryConfig = (startDate, endDate, options, filters) => {
return {
startDate,
endDate,
filters,
metrics: options.metrics ?? [],
aggregationType: options.aggregationType ?? 'SUM',
dimensions: options.dimensions,
limit: options.limit,
sortBy: options.sortBy,
sortDirection: options.sortDirection,
page: options.page,
size: options.size,
};
};
/**
* Helper function to get nested object value by path
*/
export const getNestedValue = (obj, path) => {
return path.split('.').reduce((acc, part) => acc?.[part], obj);
};
/**
* Converts a simple array to a SpringBoot response format
*
* @param {T[]} response - The array to convert into SpringBoot response format
* @returns {SpringBootResponse<T>} A SpringBoot paginated response object with the array as content
* @template T - The type of items in the array
*/
export function arrayToSpringBootResponse(response) {
return {
content: response,
empty: response.length === 0,
first: true,
last: true,
number: 0,
numberOfElements: response.length,
pageable: {
sort: {
empty: true,
sorted: false,
unsorted: true,
},
offset: 0,
pageNumber: 0,
pageSize: response.length,
paged: false,
unpaged: true,
},
size: response.length,
sort: {
empty: true,
sorted: false,
unsorted: true,
},
totalElements: response.length,
totalPages: 1,
};
}