refactoring

This commit is contained in:
egradanin
2019-01-19 14:24:54 +01:00
parent 152dae91d7
commit 3cebd722fd
17 changed files with 247 additions and 187 deletions

View File

@@ -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)}`
: "";
};