2019-07-09 18:11:09 +02:00
|
|
|
/**
|
|
|
|
* Generate filters object from string
|
|
|
|
* @param {String} search
|
|
|
|
* @return {Object}
|
|
|
|
*/
|
|
|
|
const generateFiltersFromSearch = search => {
|
|
|
|
return search
|
|
|
|
.split('&')
|
|
|
|
.filter(
|
|
|
|
x =>
|
|
|
|
!x.includes('_limit') &&
|
|
|
|
!x.includes('_page') &&
|
|
|
|
!x.includes('_sort') &&
|
|
|
|
!x.includes('source') &&
|
|
|
|
!x.includes('_q=')
|
|
|
|
)
|
|
|
|
.reduce((acc, current) => {
|
|
|
|
const [name, value] = current.split('=');
|
|
|
|
acc[name] = value;
|
|
|
|
|
|
|
|
return acc;
|
|
|
|
}, {});
|
|
|
|
};
|
|
|
|
|
|
|
|
const generateSearchFromFilters = filters => {
|
|
|
|
return Object.keys(filters)
|
2019-07-10 08:43:40 +02:00
|
|
|
.filter(key => filters[key] !== '')
|
2019-07-09 18:11:09 +02:00
|
|
|
.map(key => `${key}=${filters[key]}`)
|
|
|
|
.join('&');
|
|
|
|
};
|
|
|
|
|
|
|
|
export { generateFiltersFromSearch, generateSearchFromFilters };
|