63 lines
No EOL
1.8 KiB
JavaScript
63 lines
No EOL
1.8 KiB
JavaScript
export const getFuelPrices = (pdv) => {
|
|
const prices = []
|
|
if (!pdv.children || pdv.children.length === 0) {
|
|
return false;
|
|
}
|
|
for (let i = 0; i < pdv.children.length; i += 1) {
|
|
const currentChildren = pdv.children[i];
|
|
if (currentChildren.type === 'element' && currentChildren.name === 'prix') {
|
|
prices.push({
|
|
type: currentChildren.attributes.nom,
|
|
price: parseInt(currentChildren.attributes.valeur, 10) / 1000,
|
|
updatedAt: currentChildren.attributes.maj,
|
|
});
|
|
}
|
|
}
|
|
return prices;
|
|
};
|
|
|
|
export const getPlvInformation = (pdv, name) => {
|
|
if (!pdv.children || pdv.children.length === 0) {
|
|
return false;
|
|
}
|
|
for (let i = 0; i < pdv.children.length; i += 1) {
|
|
const currentChildren = pdv.children[i];
|
|
if (currentChildren.type === 'element' && currentChildren.name === name) {
|
|
|
|
if ( currentChildren.children && currentChildren.children.length > 0 ) {
|
|
return currentChildren.children[0].value;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
export const formatPosition = (value) => value / 100000;
|
|
|
|
export const haveSelectedGas = (station, gas) => {
|
|
if (!station.prices || station.prices.length === 0 ) {
|
|
return false;
|
|
}
|
|
|
|
for (let i = 0 ; i < station.prices.length ; i +=1 ){
|
|
if (station.prices[i].type === gas ) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
export const extractGasStationFromXml = (currentPdv ) => {
|
|
return {
|
|
id: currentPdv.attributes.id,
|
|
latitude: formatPosition(currentPdv.attributes.latitude),
|
|
longitude: formatPosition(currentPdv.attributes.longitude),
|
|
prices: getFuelPrices(currentPdv),
|
|
postCode: currentPdv.attributes.cp,
|
|
address: getPlvInformation(currentPdv, 'adresse'),
|
|
city: getPlvInformation(currentPdv, 'ville')
|
|
}
|
|
}
|
|
|