From aa3379e1c675b609ee54af73e2046fcc3f6f5985 Mon Sep 17 00:00:00 2001 From: "D. Berge" Date: Mon, 18 Sep 2023 11:58:55 +0200 Subject: [PATCH] Adapt RTI save function to refactored project configuration in DB --- lib/www/server/lib/db/navdata/save.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/www/server/lib/db/navdata/save.js b/lib/www/server/lib/db/navdata/save.js index 560f4fe..55df5c6 100644 --- a/lib/www/server/lib/db/navdata/save.js +++ b/lib/www/server/lib/db/navdata/save.js @@ -8,14 +8,10 @@ let last_tstamp = 0; async function getAllProjectConfigs () { const client = await pool.connect(); - const res0 = await client.query("SELECT schema FROM projects;"); - const text = res0.rows.map(r => { - return `SELECT '${r.schema}' AS schema, data FROM ${r.schema}.file_data WHERE (data->>'archived')::boolean IS NOT true AND data->>'id' IS NOT NULL`; - }).join("\nUNION ALL "); - - const res1 = await client.query(text); + const text = `SELECT schema, meta AS data FROM projects;`; + const res = await client.query(text); client.release(); - return res1.rows.map(r => Object.assign(r.data, {schema: r.schema})); + return res.rows; } async function getNearestPreplot (candidates) { @@ -141,14 +137,14 @@ async function saveOnline (dataset, opts = {}) { await client.query(` INSERT INTO raw_shots (sequence, line, point, objref, tstamp, geometry, hash) - VALUES ($1, $2, $3, $4, $5, ST_SetSRID(ST_MakePoint($6, $7), (SELECT (data->>'epsg')::integer AS epsg FROM file_data WHERE data ? 'id')), '*online*') + VALUES ($1, $2, $3, $4, $5, ST_SetSRID(ST_MakePoint($6, $7), (select (project_configuration()->>'epsg')::integer as epsg)), '*online*') ON CONFLICT DO NOTHING; `, [item.sequence, item.line, item.point, 0, item.tstamp, item.easting, item.northing]); } else if (item.latitude && item.longitude) { await client.query(` INSERT INTO raw_shots (sequence, line, point, objref, tstamp, geometry, hash) - VALUES ($1, $2, $3, $4, $5, ST_Transform(ST_SetSRID(ST_MakePoint($6, $7), 4326), (SELECT (data->>'epsg')::integer AS epsg FROM file_data WHERE data ? 'id')), '*online*') + VALUES ($1, $2, $3, $4, $5, ST_Transform(ST_SetSRID(ST_MakePoint($6, $7), 4326), (select (project_configuration()->>'epsg')::integer as epsg)), '*online*') ON CONFLICT DO NOTHING; `, [item.sequence, item.line, item.point, 0, item.tstamp, item.longitude, item.latitude]); } else { @@ -186,7 +182,7 @@ async function saveOffline (navData, opts = {}) { } else if (schema && hasEastNorth) { const text = ` INSERT INTO real_time_inputs (tstamp, geometry, meta) - VALUES ($1, ST_Transform(ST_SetSRID(ST_MakePoint($2, $3), (SELECT (data->>'epsg')::integer AS epsg FROM ${schema}.file_data)), 4326), $4); + VALUES ($1, ST_Transform(ST_SetSRID(ST_MakePoint($2, $3), (select (project_configuration()->>'epsg')::integer as epsg), 4326), $4); `; const values = [navData.tstamp, navData.longitude, navData.latitude, navData.payload];