mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 12:57: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 ],
|
||||
// // delete: [ mw.permissions.delete ]
|
||||
// },
|
||||
'/navdata/': {
|
||||
get: [ mw.navdata.get ],
|
||||
}
|
||||
//
|
||||
// '/user': {
|
||||
// get: [ mw.user.get ],
|
||||
|
||||
@@ -7,5 +7,6 @@ module.exports = {
|
||||
auth: require('./auth'),
|
||||
gis: require('./gis'),
|
||||
label: require('./label'),
|
||||
navdata: require('./navdata'),
|
||||
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 = {
|
||||
save: require('./save')
|
||||
save: require('./save'),
|
||||
get: require('./get')
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user