refactoring
This commit is contained in:
@@ -1,21 +1,38 @@
|
||||
const isObject = obj => obj === Object(obj);
|
||||
const mapOptionToLink = (options, option) =>
|
||||
options[option] !== false
|
||||
? `${option}=${
|
||||
isObject(options[option]) ? options[option].value : options[option]
|
||||
}&`
|
||||
: "";
|
||||
const mapOptionsToLink = options => {
|
||||
const multipleOptions = ["grad"];
|
||||
return Object.entries(options)
|
||||
.filter(([optionName, optionValue]) => optionValue !== false)
|
||||
.map(([optionName, optionValue]) =>
|
||||
isObject(options[optionName])
|
||||
? [optionName, options[optionName].value]
|
||||
: [optionName, optionValue]
|
||||
)
|
||||
.map(
|
||||
([optionName, optionValue]) =>
|
||||
!console.log(optionName, optionValue) && [optionName, optionValue]
|
||||
)
|
||||
.reduce((acc, [optionName, optionValue]) => {
|
||||
console.log(optionName, typeof optionName);
|
||||
if (multipleOptions.some(option => ~optionName.indexOf(option))) {
|
||||
const whatOption = multipleOptions.filter(
|
||||
option => ~optionName.indexOf(option)
|
||||
)[0];
|
||||
return acc + `${whatOption}[]=${optionValue}&`;
|
||||
}
|
||||
return acc + `${optionName}=${optionValue}&`;
|
||||
}, "");
|
||||
};
|
||||
|
||||
export const createOlxLink = (category, subcategory, options) => {
|
||||
const deepSubCategory =
|
||||
Boolean(Object.keys(subcategory).length) &&
|
||||
subcategory[
|
||||
Object.keys(subcategory).reduce((max, key) => (max < key ? key : max))
|
||||
];
|
||||
return deepSubCategory
|
||||
? Object.keys(options).reduce(
|
||||
(link, option) => link + mapOptionToLink(options, option),
|
||||
`kategorija=${deepSubCategory.value}&`
|
||||
)
|
||||
const categoryChoice =
|
||||
(Boolean(Object.keys(subcategory).length) &&
|
||||
subcategory[
|
||||
Object.keys(subcategory).reduce((max, key) => (max < key ? key : max))
|
||||
]) ||
|
||||
category;
|
||||
|
||||
return categoryChoice
|
||||
? `kategorija=${categoryChoice.value}&${mapOptionsToLink(options)}`
|
||||
: "";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user