refactoring and implementing refreshing items list every 2 seconds

This commit is contained in:
egradanin
2019-01-14 22:41:53 +01:00
parent a431c58763
commit ae446d5333
19 changed files with 166 additions and 154 deletions

View File

@@ -1,63 +1,15 @@
/*category: {value: "Vozila", label: "Vozila"}
options:
cijena: (2) [6500, 70500]
godiste: (2) [2004, 2017]
gorivo_select_benzin: true
gorivo_select_dizel: true
kanton: {value: "9", label: "Sarajevo"}
kilometrazaMax: {value: 20000, label: "20000"}
kilometrazaMin: {value: 5000, label: "5000"}
proizvodac: {value: "1900", label: "Audi"}
stanje: ""
subcategory: {value: "Automobili", label: "Automobili"}
const isObject = obj => obj === Object(obj);
const mapOptionToLink = (options, option) =>
options[option] !== false
? `${option}=${
isObject(options[option]) ? options[option].value : options[option]
}&`
: "";
https://www.olx.ba/pretraga?
kategorija=18&stanje=&v_b=1900
&od=6500&do=70500
&kanton=9&
godiste_min=2004&godiste_max=2017
&kilometra-a_min=5000&kilometra-a_max=50000
&gorivo_select_dizel=Dizel&gorivo_select_benzin=Benzin
{
"Automobili": 18,
"v_b": "proizvodac",
}*/
function AutomobiliLinkCreator(options) {
const [od, do_] = options.cijena;
const [godiste_min, godiste_max] = options.godiste;
const goriva = [
"gorivo_select_benzin",
"gorivo_select_dizel",
"gorivo_select_plin",
"gorivo_select_hibrid",
"gorivo_selector_elektro"
]
.filter(gorivo => options.hasOwnProperty(gorivo))
.reduce(
(izborGoriva, gorivo) =>
izborGoriva +
"" +
options[gorivo] +
"=" +
options[gorivo] +
"&",
""
);
return `kategorija=18&stanje=${options.stanje}&v_b=${
options.proizvodac.value
}&od=${od}&do=${do_}&kanton=${
options.kanton.value
}&godiste_min=${godiste_min}&godiste_max=${godiste_max}&kilometra-a_min=${
options.kilometrazaMin.value
}&kilometra-a_max=${options.kilometrazaMax.value}&${goriva}`;
}
const mappingFunctios = {
Automobili: AutomobiliLinkCreator
};
export const createOlxLink = (category, subcategory, options) => {
return mappingFunctios[subcategory.value](options);
};
export const createOlxLink = (category, subcategory, options) =>
subcategory.value
? Object.keys(options).reduce(
(link, option) => link + mapOptionToLink(options, option),
`kategorija=${subcategory.value}&`
)
: "";

View File

@@ -0,0 +1,11 @@
export const hoc = (option, componentList) => componentList[option] || null;
export const areObjectEqual = function checkEquality(objectA, objectB) {
return (
Object.keys(objectA).length === Object.keys(objectB).length &&
Object.keys(objectA).every(property =>
objectA[property] === Object(objectA[property])
? checkEquality(objectA[property], objectB[property])
: objectA[property] === objectB[property]
)
);
};

View File

@@ -1 +0,0 @@
export const hoc = (option, componentList) => componentList[option] || null;