mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 07:37:08 +00:00
API: Add label querying endpoint.
Labels can be associated with events and can have display properties such as a description and colour, this is why we need an endpoint for the client to retrieve them.
This commit is contained in:
@@ -90,6 +90,10 @@ app.map({
|
||||
// get: [ mw.event.get ],
|
||||
// put: [ mw.event.put ],
|
||||
// },
|
||||
'/project/:project/label/': {
|
||||
get: [ mw.label.list ],
|
||||
// post: [ mw.label.post ],
|
||||
},
|
||||
//
|
||||
// '/project/:id/permissions/:mode(read|write)?': {
|
||||
// get: [ mw.permissions.get ],
|
||||
|
||||
@@ -5,5 +5,6 @@ module.exports = {
|
||||
sequence: require('./sequence'),
|
||||
user: require('./user'),
|
||||
auth: require('./auth'),
|
||||
gis: require('./gis')
|
||||
gis: require('./gis'),
|
||||
label: require('./label')
|
||||
};
|
||||
|
||||
0
lib/www/server/api/middleware/label/delete.js
Normal file
0
lib/www/server/api/middleware/label/delete.js
Normal file
0
lib/www/server/api/middleware/label/get.js
Normal file
0
lib/www/server/api/middleware/label/get.js
Normal file
8
lib/www/server/api/middleware/label/index.js
Normal file
8
lib/www/server/api/middleware/label/index.js
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
module.exports = {
|
||||
list: require('./list'),
|
||||
get: require('./get'),
|
||||
post: require('./post'),
|
||||
put: require('./put'),
|
||||
delete: require('./delete')
|
||||
}
|
||||
9
lib/www/server/api/middleware/label/list.js
Normal file
9
lib/www/server/api/middleware/label/list.js
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
const { label } = require('../../../lib/db');
|
||||
|
||||
module.exports = async function (req, res, next) {
|
||||
|
||||
res.status(200).send(await label.list(req.params.project, req.query));
|
||||
next();
|
||||
|
||||
};
|
||||
0
lib/www/server/api/middleware/label/post.js
Normal file
0
lib/www/server/api/middleware/label/post.js
Normal file
0
lib/www/server/api/middleware/label/put.js
Normal file
0
lib/www/server/api/middleware/label/put.js
Normal file
@@ -5,4 +5,5 @@ module.exports = {
|
||||
sequence: require('./sequence'),
|
||||
event: require('./event'),
|
||||
gis: require('./gis'),
|
||||
label: require('./label')
|
||||
};
|
||||
|
||||
0
lib/www/server/lib/db/label/delete.js
Normal file
0
lib/www/server/lib/db/label/delete.js
Normal file
0
lib/www/server/lib/db/label/get.js
Normal file
0
lib/www/server/lib/db/label/get.js
Normal file
8
lib/www/server/lib/db/label/index.js
Normal file
8
lib/www/server/lib/db/label/index.js
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
module.exports = {
|
||||
list: require('./list'),
|
||||
get: require('./get'),
|
||||
post: require('./post'),
|
||||
put: require('./put'),
|
||||
delete: require('./delete')
|
||||
}
|
||||
16
lib/www/server/lib/db/label/list.js
Normal file
16
lib/www/server/lib/db/label/list.js
Normal file
@@ -0,0 +1,16 @@
|
||||
const { pool } = require('../connection');
|
||||
|
||||
async function list (projectId, opts = {}) {
|
||||
await pool.query("CALL set_survey($1);", [projectId]);
|
||||
|
||||
const text = `
|
||||
SELECT *
|
||||
FROM labels
|
||||
ORDER BY name;
|
||||
`;
|
||||
|
||||
const res = await pool.query(text);
|
||||
return res.rows;
|
||||
}
|
||||
|
||||
module.exports = list;
|
||||
0
lib/www/server/lib/db/label/post.js
Normal file
0
lib/www/server/lib/db/label/post.js
Normal file
0
lib/www/server/lib/db/label/put.js
Normal file
0
lib/www/server/lib/db/label/put.js
Normal file
Reference in New Issue
Block a user