mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 15:19:35 +02:00
48 lines
903 B
JavaScript
48 lines
903 B
JavaScript
|
|
||
|
|
||
|
const parseStop = (ctx, l, id) => {
|
||
|
const {profile, common, opt} = ctx;
|
||
|
|
||
|
if (!l) {
|
||
|
return null;
|
||
|
}
|
||
|
let stop = {
|
||
|
type: 'station',
|
||
|
id: id,
|
||
|
name: l.haltName,
|
||
|
};
|
||
|
|
||
|
stop.products = profile.parseProducts(ctx, l.produktGattungen?.map(p => p.produktGattung));
|
||
|
if (opt.linesOfStops) {
|
||
|
stop.lines = l.produktGattungen?.flatMap(p => {
|
||
|
const foundProduct = profile.products.find(pp => pp.dbnav == p.produktGattung);
|
||
|
return p.produkte?.map(l => {
|
||
|
return {
|
||
|
type: 'line',
|
||
|
name: l.name,
|
||
|
productName: l.name && l.name.split(' ')[0] || undefined,
|
||
|
mode: foundProduct?.mode,
|
||
|
product: foundProduct?.id,
|
||
|
public: true,
|
||
|
};
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
if (common && common.locations && common.locations[stop.id]) {
|
||
|
delete stop.type;
|
||
|
stop = {
|
||
|
...common.locations[stop.id],
|
||
|
...stop,
|
||
|
};
|
||
|
}
|
||
|
|
||
|
// TODO isMeta
|
||
|
// TODO entrances
|
||
|
return stop;
|
||
|
};
|
||
|
|
||
|
export {
|
||
|
parseStop,
|
||
|
};
|