mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 12:17:08 +00:00
Add endpoint to retrieve real-time input data
This commit is contained in:
@@ -132,6 +132,9 @@ app.map({
|
|||||||
// // post: [ mw.permissions.post ],
|
// // post: [ mw.permissions.post ],
|
||||||
// // delete: [ mw.permissions.delete ]
|
// // delete: [ mw.permissions.delete ]
|
||||||
// },
|
// },
|
||||||
|
'/navdata/': {
|
||||||
|
get: [ mw.navdata.get ],
|
||||||
|
}
|
||||||
//
|
//
|
||||||
// '/user': {
|
// '/user': {
|
||||||
// get: [ mw.user.get ],
|
// get: [ mw.user.get ],
|
||||||
|
|||||||
@@ -7,5 +7,6 @@ module.exports = {
|
|||||||
auth: require('./auth'),
|
auth: require('./auth'),
|
||||||
gis: require('./gis'),
|
gis: require('./gis'),
|
||||||
label: require('./label'),
|
label: require('./label'),
|
||||||
|
navdata: require('./navdata'),
|
||||||
configuration: require('./configuration')
|
configuration: require('./configuration')
|
||||||
};
|
};
|
||||||
|
|||||||
0
lib/www/server/api/middleware/navdata/delete.js
Normal file
0
lib/www/server/api/middleware/navdata/delete.js
Normal file
13
lib/www/server/api/middleware/navdata/get.js
Normal file
13
lib/www/server/api/middleware/navdata/get.js
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
const { navdata } = require('../../../lib/db');
|
||||||
|
|
||||||
|
module.exports = async function (req, res, next) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
res.status(200).send(await navdata.get(req.query));
|
||||||
|
next();
|
||||||
|
} catch (err) {
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
7
lib/www/server/api/middleware/navdata/index.js
Normal file
7
lib/www/server/api/middleware/navdata/index.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
module.exports = {
|
||||||
|
get: require('./get'),
|
||||||
|
post: require('./post'),
|
||||||
|
put: require('./put'),
|
||||||
|
delete: require('./delete')
|
||||||
|
}
|
||||||
0
lib/www/server/api/middleware/navdata/post.js
Normal file
0
lib/www/server/api/middleware/navdata/post.js
Normal file
0
lib/www/server/api/middleware/navdata/put.js
Normal file
0
lib/www/server/api/middleware/navdata/put.js
Normal file
33
lib/www/server/lib/db/navdata/get.js
Normal file
33
lib/www/server/lib/db/navdata/get.js
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
|
||||||
|
const { transaction, pool } = require('../connection');
|
||||||
|
|
||||||
|
function fields (obj, keys) {
|
||||||
|
const retval = {};
|
||||||
|
for (const key of keys) {
|
||||||
|
retval[key] = obj[key];
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function get (opts = {}) {
|
||||||
|
const client = await pool.connect();
|
||||||
|
|
||||||
|
const text = `
|
||||||
|
SELECT meta
|
||||||
|
FROM real_time_inputs
|
||||||
|
ORDER BY tstamp DESC
|
||||||
|
LIMIT $1
|
||||||
|
OFFSET $2
|
||||||
|
`;
|
||||||
|
|
||||||
|
const values = [ opts.limit || 300, opts.offset || 0 ];
|
||||||
|
|
||||||
|
const res = await client.query(text, values);
|
||||||
|
client.release();
|
||||||
|
return opts.fields
|
||||||
|
? res.rows.map(r => fields(r.meta, opts.fields.split(/[;,\s]+/)))
|
||||||
|
: res.rows.map(r => r.meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = get;
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
save: require('./save')
|
save: require('./save'),
|
||||||
|
get: require('./get')
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user