diff --git a/lib/www/server/api/index.js b/lib/www/server/api/index.js index 26f5877..44394bf 100644 --- a/lib/www/server/api/index.js +++ b/lib/www/server/api/index.js @@ -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 ], diff --git a/lib/www/server/api/middleware/index.js b/lib/www/server/api/middleware/index.js index 9d557c7..3280d9a 100644 --- a/lib/www/server/api/middleware/index.js +++ b/lib/www/server/api/middleware/index.js @@ -5,5 +5,6 @@ module.exports = { sequence: require('./sequence'), user: require('./user'), auth: require('./auth'), - gis: require('./gis') + gis: require('./gis'), + label: require('./label') }; diff --git a/lib/www/server/api/middleware/label/delete.js b/lib/www/server/api/middleware/label/delete.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/www/server/api/middleware/label/get.js b/lib/www/server/api/middleware/label/get.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/www/server/api/middleware/label/index.js b/lib/www/server/api/middleware/label/index.js new file mode 100644 index 0000000..1b5fb45 --- /dev/null +++ b/lib/www/server/api/middleware/label/index.js @@ -0,0 +1,8 @@ + +module.exports = { + list: require('./list'), + get: require('./get'), + post: require('./post'), + put: require('./put'), + delete: require('./delete') +} diff --git a/lib/www/server/api/middleware/label/list.js b/lib/www/server/api/middleware/label/list.js new file mode 100644 index 0000000..5c2e6fa --- /dev/null +++ b/lib/www/server/api/middleware/label/list.js @@ -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(); + +}; diff --git a/lib/www/server/api/middleware/label/post.js b/lib/www/server/api/middleware/label/post.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/www/server/api/middleware/label/put.js b/lib/www/server/api/middleware/label/put.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/www/server/lib/db/index.js b/lib/www/server/lib/db/index.js index e45d71f..0439884 100644 --- a/lib/www/server/lib/db/index.js +++ b/lib/www/server/lib/db/index.js @@ -5,4 +5,5 @@ module.exports = { sequence: require('./sequence'), event: require('./event'), gis: require('./gis'), + label: require('./label') }; diff --git a/lib/www/server/lib/db/label/delete.js b/lib/www/server/lib/db/label/delete.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/www/server/lib/db/label/get.js b/lib/www/server/lib/db/label/get.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/www/server/lib/db/label/index.js b/lib/www/server/lib/db/label/index.js new file mode 100644 index 0000000..1b5fb45 --- /dev/null +++ b/lib/www/server/lib/db/label/index.js @@ -0,0 +1,8 @@ + +module.exports = { + list: require('./list'), + get: require('./get'), + post: require('./post'), + put: require('./put'), + delete: require('./delete') +} diff --git a/lib/www/server/lib/db/label/list.js b/lib/www/server/lib/db/label/list.js new file mode 100644 index 0000000..050530b --- /dev/null +++ b/lib/www/server/lib/db/label/list.js @@ -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; diff --git a/lib/www/server/lib/db/label/post.js b/lib/www/server/lib/db/label/post.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/www/server/lib/db/label/put.js b/lib/www/server/lib/db/label/put.js new file mode 100644 index 0000000..e69de29