diff --git a/wi/http/data/endpoint.js b/wi/http/data/endpoint.js index 6be084c66..26abcf4c7 100644 --- a/wi/http/data/endpoint.js +++ b/wi/http/data/endpoint.js @@ -2,6 +2,10 @@ var auth = require('../../core/jwt_auth.js').auth; var sql = require('./sql.js'); var RegisterEndpoint = function(app, api, single_name, plural_name, pkey, skeys) { + app.get('/api/data/' + single_name, auth, function (req, res) { + sql.RetrieveAll(req, res, plural_name, pkey); + }); + app.get('/api/data/' + single_name + '/:' + pkey, auth, function (req, res) { sql.Retrieve(req, res, plural_name, pkey); }); diff --git a/wi/http/data/sql.js b/wi/http/data/sql.js index bd174be2c..0addf6961 100644 --- a/wi/http/data/sql.js +++ b/wi/http/data/sql.js @@ -104,6 +104,48 @@ function CreateUpdate(req, res, table, pkey) { }); } +function RetrieveAll(req, res, table, pkey) { + req.mysql.getConnection(function(err, connection) { + try { + if(err) { + console.log(err); + connection.release(); + res.sendStatus(500); + return; + } + + connection.query('SELECT * FROM ' + table + ' ORDER BY ' + pkey + ' ASC LIMIT 1000', [], function (error, results, fields) { + try { + var ret = []; + + for(var idx in results) { + var result = results[idx]; + var obj = { }; + + for(var i in result) { + var value = result[i]; + obj[i] = value; + } + + ret.push(obj); + } + + connection.release(); + res.json(ret); + } catch(ex) { + console.log(ex); + connection.release(); + res.sendStatus(500); + } + }); + } catch(ex) { + console.log(ex); + connection.release(); + res.sendStatus(500); + } + }); +} + function Retrieve(req, res, table, pkey) { req.mysql.getConnection(function(err, connection) { try { @@ -266,6 +308,7 @@ function Search(req, res, table, pkey, skeys) { module.exports = { 'CreateUpdate': CreateUpdate, 'Retrieve': Retrieve, + 'RetrieveAll': RetrieveAll, 'Delete': Delete, 'Search': Search, } \ No newline at end of file