2019-01-14 22:41:53 +01:00
|
|
|
const isObject = obj => obj === Object(obj);
|
2019-01-19 14:24:54 +01:00
|
|
|
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}&`;
|
|
|
|
|
}, "");
|
|
|
|
|
};
|
2019-01-14 22:41:53 +01:00
|
|
|
|
2019-01-16 21:00:14 +01:00
|
|
|
export const createOlxLink = (category, subcategory, options) => {
|
2019-01-19 14:24:54 +01:00
|
|
|
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)}`
|
2019-01-14 22:41:53 +01:00
|
|
|
: "";
|
2019-01-16 21:00:14 +01:00
|
|
|
};
|