diff --git a/consumerWebsite/functions/socket.js b/consumerWebsite/functions/socket.js index a1eaa98..fa7b15f 100644 --- a/consumerWebsite/functions/socket.js +++ b/consumerWebsite/functions/socket.js @@ -4,7 +4,6 @@ const io = ()=> app.io; // We have to wait for the express HTTP server to be finished starting before we // can use any of the socket.io stuff. app.onListen.push(function(){ - app.io.on('connection', (socket) => { console.log('User connected via WebsSocket') @@ -12,7 +11,6 @@ app.onListen.push(function(){ console.log('User disconnect via WebsSocket') }); }); - }); diff --git a/consumerWebsite/public/js/app.js b/consumerWebsite/public/js/app.js index eebb3e6..bccb7ef 100644 --- a/consumerWebsite/public/js/app.js +++ b/consumerWebsite/public/js/app.js @@ -10,6 +10,24 @@ app.util = (function (app) { : decodeURIComponent(results[1].replace(/\+/g, " ")); } + function promisify(f) { + return function (...args) { // return a wrapper-function (*) + return new Promise((resolve, reject) => { + function callback(err, result) { // our custom callback for f (**) + if (err) { + reject(err); + } else { + resolve(result); + } + } + + args.push(callback); // append our custom callback to the end of f arguments + + f.call(this, ...args); // call the original function + }); + }; + } + function actionMessage(message, $target, type, callback) { message = message || ""; $target = $target.closest("div.iot-card").find(".actionMessage"); @@ -52,12 +70,13 @@ app.util = (function (app) { }; return { - getUrlParameter: getUrlParameter, - actionMessage: actionMessage, + getUrlParameter, + actionMessage, + promisify }; })(app); -app.api = (function (app) { +app.apiSync = (function (app) { var baseURL = "/api/v0/"; function post(url, data, callback) { @@ -141,7 +160,21 @@ app.api = (function (app) { }); } - return { post: post, get: get, put: put, delete: remove }; + return { + post: app.util.promisify(post), + get: app.util.promisify(get), + put: app.util.promisify(put), + delete: app.util.promisify(remove), + }; +})(app); + +app.api = (function (app) { + return { + post: app.util.promisify(app.apiSync.post), + get: app.util.promisify(app.apiSync.get), + put: app.util.promisify(app.apiSync.put), + delete: app.util.promisify(app.apiSync.remove), + }; })(app); //socket.io @@ -184,7 +217,7 @@ app.auth = (function (app) { function isLoggedIn(callback) { if (getToken()) { - return app.api.get("user/me", function (error, data) { + return app.apiSync.get("user/me", function (error, data) { if (!error) app.auth.user = data; //for navbar to show username if (!location.pathname === "/login") @@ -268,7 +301,7 @@ app.auth = (function (app) { app.user = (function (app) { //delete profile function deleteProfile() { - app.api.delete("user/delete", function (error, data) { + app.apiSync.delete("user/delete", function (error, data) { if (error) { app.util.actionMessage(error.message, $("#deleteProfile"), "danger"); } else { @@ -294,7 +327,7 @@ function formAJAX(btn, del) { //console.log('Data being sent to', $form.attr('action'), formData) - app.api[method]($form.attr("action"), formData, function (error, data) { + app.apiSync[method]($form.attr("action"), formData, function (error, data) { //console.log('Data back from the server', error, data) app.util.actionMessage(data.message, $form, error ? "danger" : "success"); //re-populate table if (!error) { diff --git a/consumerWebsite/routes/render.js b/consumerWebsite/routes/render.js index d347453..d24838c 100644 --- a/consumerWebsite/routes/render.js +++ b/consumerWebsite/routes/render.js @@ -87,5 +87,9 @@ router.get("/api", function (req, res, next) { res.render("api"); }); +// sensor data +router.get("/sensor-data", function (req, res, next) { + res.render("sensor-data"); +}); module.exports = router; diff --git a/consumerWebsite/views/contact.ejs b/consumerWebsite/views/contact.ejs index edc98f5..252f253 100644 --- a/consumerWebsite/views/contact.ejs +++ b/consumerWebsite/views/contact.ejs @@ -1,5 +1,5 @@ <%- include('top') %> - +
diff --git a/consumerWebsite/views/learnmore.ejs b/consumerWebsite/views/learnmore.ejs index 5ef406f..8f6eca9 100644 --- a/consumerWebsite/views/learnmore.ejs +++ b/consumerWebsite/views/learnmore.ejs @@ -1,5 +1,5 @@ <%- include('top') %> - +

@@ -38,7 +38,7 @@

- + <%- include('bot') %> diff --git a/consumerWebsite/views/sensor-data.ejs b/consumerWebsite/views/sensor-data.ejs new file mode 100644 index 0000000..2812e08 --- /dev/null +++ b/consumerWebsite/views/sensor-data.ejs @@ -0,0 +1,41 @@ +<%- include('top') %> + + + + + + +<%- include('bot') %> diff --git a/consumerWebsite/views/top.ejs b/consumerWebsite/views/top.ejs index 8693dda..bc42628 100644 --- a/consumerWebsite/views/top.ejs +++ b/consumerWebsite/views/top.ejs @@ -128,6 +128,3 @@
- - - \ No newline at end of file