slightly better neo4j import api that has provider prefix and what not be specified as an option
This commit is contained in:
parent
c39cbab3dd
commit
9118e59b3a
1 changed files with 13 additions and 9 deletions
|
@ -37,13 +37,13 @@ export async function graph_setup(
|
||||||
const jsonData = await Deno.readTextFile(OCCT_stops_json);
|
const jsonData = await Deno.readTextFile(OCCT_stops_json);
|
||||||
const locationNodes: LocationNode[] = JSON.parse(jsonData);
|
const locationNodes: LocationNode[] = JSON.parse(jsonData);
|
||||||
|
|
||||||
await stops_json_node_import(session, locationNodes);
|
await stops_json_node_import(session, locationNodes, { provider: "OCCT" });
|
||||||
|
|
||||||
const BCTStopsData = await Deno.readTextFile(BCT_GTFS_stops_txt);
|
const BCTStopsData = await Deno.readTextFile(BCT_GTFS_stops_txt);
|
||||||
|
|
||||||
const BCT_stops = await parse_gtfs_stops(BCTStopsData);
|
const BCT_stops = await parse_gtfs_stops(BCTStopsData);
|
||||||
|
|
||||||
await stops_gtfs_node_import(session, BCT_stops);
|
await stops_gtfs_node_import(session, BCT_stops, { provider: "BCT" });
|
||||||
|
|
||||||
await session.close();
|
await session.close();
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,9 @@ export async function graph_setup(
|
||||||
async function stops_json_node_import(
|
async function stops_json_node_import(
|
||||||
session: Neo4j.Session,
|
session: Neo4j.Session,
|
||||||
stops: LocationNode[],
|
stops: LocationNode[],
|
||||||
|
options: { provider: string },
|
||||||
) {
|
) {
|
||||||
|
const { provider } = options;
|
||||||
for (const node of stops) {
|
for (const node of stops) {
|
||||||
await session.run(
|
await session.run(
|
||||||
`
|
`
|
||||||
|
@ -60,15 +62,15 @@ async function stops_json_node_import(
|
||||||
n.originalId = $originalId,
|
n.originalId = $originalId,
|
||||||
n.latitude = $lat,
|
n.latitude = $lat,
|
||||||
n.longitude = $lng,
|
n.longitude = $lng,
|
||||||
n.source = 'OCCT'
|
n.source = '${provider}'
|
||||||
ON MATCH SET
|
ON MATCH SET
|
||||||
n.originalId = $originalId,
|
n.originalId = $originalId,
|
||||||
n.latitude = $lat,
|
n.latitude = $lat,
|
||||||
n.longitude = $lng,
|
n.longitude = $lng,
|
||||||
n.source = 'OCCT'
|
n.source = '${provider}'
|
||||||
`,
|
`,
|
||||||
{
|
{
|
||||||
id: `OCCT_${node.id}`,
|
id: `${provider}_${node.id}`,
|
||||||
originalId: node.id,
|
originalId: node.id,
|
||||||
lat: node.lat,
|
lat: node.lat,
|
||||||
lng: node.lng,
|
lng: node.lng,
|
||||||
|
@ -80,6 +82,8 @@ async function stops_json_node_import(
|
||||||
async function stops_gtfs_node_import(
|
async function stops_gtfs_node_import(
|
||||||
session: Neo4j.Session,
|
session: Neo4j.Session,
|
||||||
stops: GTFSStop[],
|
stops: GTFSStop[],
|
||||||
|
// default provider is to avoid breaking upstream
|
||||||
|
options: { provider: string },
|
||||||
) {
|
) {
|
||||||
// Add GTFS stops to Neo4j
|
// Add GTFS stops to Neo4j
|
||||||
for (const stop of stops) {
|
for (const stop of stops) {
|
||||||
|
@ -89,7 +93,7 @@ async function stops_gtfs_node_import(
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
const { provider } = options;
|
||||||
// Use MERGE to update existing nodes or create new ones
|
// Use MERGE to update existing nodes or create new ones
|
||||||
await session.run(
|
await session.run(
|
||||||
`
|
`
|
||||||
|
@ -102,7 +106,7 @@ async function stops_gtfs_node_import(
|
||||||
s.parentStation = $parentStation,
|
s.parentStation = $parentStation,
|
||||||
s.zoneId = $zoneId,
|
s.zoneId = $zoneId,
|
||||||
s.url = $url,
|
s.url = $url,
|
||||||
s.source = 'BCT'
|
s.source = '${provider}'
|
||||||
ON MATCH SET
|
ON MATCH SET
|
||||||
s.name = $name,
|
s.name = $name,
|
||||||
s.latitude = $lat,
|
s.latitude = $lat,
|
||||||
|
@ -111,10 +115,10 @@ async function stops_gtfs_node_import(
|
||||||
s.parentStation = $parentStation,
|
s.parentStation = $parentStation,
|
||||||
s.zoneId = $zoneId,
|
s.zoneId = $zoneId,
|
||||||
s.url = $url,
|
s.url = $url,
|
||||||
s.source = 'BCT'
|
s.source = '${provider}'
|
||||||
`,
|
`,
|
||||||
{
|
{
|
||||||
id: "BCT_" + stop.stop_id,
|
id: `${provider}_` + stop.stop_id,
|
||||||
name: stop.stop_name,
|
name: stop.stop_name,
|
||||||
lat: parseFloat(stop.stop_lat),
|
lat: parseFloat(stop.stop_lat),
|
||||||
lng: parseFloat(stop.stop_lon),
|
lng: parseFloat(stop.stop_lon),
|
||||||
|
|
Loading…
Reference in a new issue