From 269627597e1218d904f531ccbc6a99ea8f3ee20d Mon Sep 17 00:00:00 2001 From: newtbot Date: Wed, 17 Jan 2024 16:45:22 +0800 Subject: [PATCH] a --- api.MD | 5 +---- consumerWebsite/functions/apiDatabase.js | 21 ++++++++++++++++++--- consumerWebsite/routes/user.js | 14 +++----------- webserver/modules/express.js | 2 +- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/api.MD b/api.MD index a875492..1100817 100644 --- a/api.MD +++ b/api.MD @@ -171,10 +171,7 @@ http://localhost/api/v0/sensor-data/data?week=1&sensorid=1&locationid=1&page=2&p - -curl localhost/api/v0/user/new -H "Content-Type: application/json" -X POST -d '{"username": "system", "password": "thisisthesystemuserpasswordnoob", "email": "system@ecosaver.com", "address": "Nanyang Polytechnic 180 Ang Mo Kio Avenue 8 Singapore 569830", "phone": "12345678"}' - -curl localhost/api/v0/user/new -H "Content-Type: application/json" -X POST -d '{"username": "testuser", "password": "thisisthesystemuserpasswordnoob", "email": "testuser@ecosaver.com", "address": "Nanyang Polytechnic 180 Ang Mo Kio Avenue 8 Singapore 569830", "phone": "12345678"}' +curl localhost/api/v0/user/register -H "Content-Type: application/json" -X POST -d '{"username": "testuser123", "password": "thisisthesystemuserpasswordnoob", "email": "testuser123@ecosaver.com", "address": "Nanyang Polytechnic 180 Ang Mo Kio Avenue 8 Singapore 569830", "phone": "12345678"}' curl localhost/api/v0/apikey/new -H "Content-Type: application/json" -X POST -d '{"userid": "2", "permission": "canRead"}' diff --git a/consumerWebsite/functions/apiDatabase.js b/consumerWebsite/functions/apiDatabase.js index 71a1c2f..293abd3 100644 --- a/consumerWebsite/functions/apiDatabase.js +++ b/consumerWebsite/functions/apiDatabase.js @@ -4,15 +4,31 @@ const { userModel } = require("../database/model/userModel.js"); const { Op, Sequelize } = require("sequelize"); const { hashAPIKey } = require("../functions/bcrypt.js"); const { generateUUID } = require("../functions/generateUUID.js"); +const { hashPassword } = require("../functions/bcrypt.js"); async function getUser() { const user = await userModel.findAll(); return user; } +//api/v0/user/register +/* Registering new user +1) req.body is taken from html form or wtv +2) bcrpyt and hash the password on the server side +3) pass to db +*/ async function addUser(user) { - //console.log(user); - await userModel.create(user); + console.log(user); + //hash password + let hash = await hashPassword(user.password); + + await userModel.create({ + username: user.username, + password: hash, + email: user.email, + address: user.address, + phone: user.phone, + }); } async function getAPIKey() { @@ -46,7 +62,6 @@ async function addAPIKey(userId, permission) { //user token with - - //"apikey": "1-9beba05f-1bf1-4d8a-9ee8-9f61e1428e20" return usertoken; } diff --git a/consumerWebsite/routes/user.js b/consumerWebsite/routes/user.js index 639fe14..844fcea 100644 --- a/consumerWebsite/routes/user.js +++ b/consumerWebsite/routes/user.js @@ -1,9 +1,9 @@ const { getUser, addUser } = require("../functions/apiDatabase.js"); -const { hashPassword } = require("../functions/bcrypt.js"); const express = require("express"); const router = express.Router(); +//get all users router.get("/", async (req, res, next) => { try { const location = await getUser(); @@ -14,17 +14,9 @@ router.get("/", async (req, res, next) => { } }); -/* -1) req.body is taken from html form or wtv -2) bcrpyt and hash the password on the server side -3) pass to db -*/ -router.post("/new", async (req, res, next) => { + +router.post("/register", async (req, res, next) => { try { - //pass pass to hashPassword - let hash = await hashPassword(req.body.password); - //add hash back to req.body - req.body.password = hash; await addUser(req.body); res.sendStatus(200); } catch (error) { diff --git a/webserver/modules/express.js b/webserver/modules/express.js index e929b5a..fcbbbba 100644 --- a/webserver/modules/express.js +++ b/webserver/modules/express.js @@ -32,7 +32,7 @@ app.set("json spaces", 2); middleware logic ( called by next() ) */ app.use("/api/seed/v0", [ apikeyCheck , APIlogger] ,require("../routes/seed_route.js")); -app.use('/api/v0', [apikeyCheck, APIlogger] ,require("../routes/api_route.js")); //webserver\routes\api_route.js +app.use('/api/v0', [apikeyCheck, APIlogger] ,require("../routes/api_route.js"));