From 86dc57a2233aa3d2c984bc3e46ad4ee234f6b28e Mon Sep 17 00:00:00 2001 From: "narindra.rajohnso" <narindra-hasimanjaka-david.rajohnson@etu.hesge.ch> Date: Mon, 12 Jun 2023 18:03:47 +0200 Subject: [PATCH] edit to have logic route API --- API/src/database/database.sqlite | Bin 20480 -> 20480 bytes API/src/express/Server.ts | 6 ++-- API/src/routes/router-admin.ts | 50 +++++++++++++++---------------- API/src/routes/router-gamer.ts | 5 +--- API/src/routes/router-guest.ts | 8 ++--- 5 files changed, 31 insertions(+), 38 deletions(-) diff --git a/API/src/database/database.sqlite b/API/src/database/database.sqlite index 30bcb3756e4ba1b24718dc0f5798be127ea4b8fb..ab49992f314c8ca671c6eceac1143c7dea7146dc 100644 GIT binary patch delta 576 zcmZozz}T>Wae_2s*F+g-#;%PCOZa8Dx!4%_mH68E`*`2-hVV%9?B?#_X5=d8V&j~( zv9XG?o@YBlj<m3(s;H-DUTV3yMYeHXQEGZ#N@7`2Vpe`eUP)?ki9<<dNvU3PMrm<s zk&%Isv95ucuAz~Fp^=q|iIs_^o|&<+g0_Kym4N|%*?eA3Nku_%O>s}p#FX63Jj25B zxYVMOs?yB-g3>&&5STE8SqSE#nQ3TcY^rB$XolTJG}+DNQumlRMcFvzQ$>Y!MJLC} z`mum~F?pk`ia6X8W>!XqdWPmk5F<CgmX&0Z;pWd};Lqj1%>Rym2mc-Z+5AoX>-a19 zkMZ~L_iR>FaOM}~U&X)$4l+J2W=Te{Qw@11SLiQc;z-)qD8*5~n!&zNkYC!<(>Xsk zH#M(BAvrZCQ6V?6C^;ilp+q+`$39vqAhAfH<S+vRL!G@dzc5~<zKKQ2N;*nj`NgRP z8A>`zL7B-JiA5<&v4(#6xoCl8YGr7usb^qn4)GFtyjXz3(7@CZD!ciCg}gYUAOL;% Bo4o)4 delta 292 zcmZozz}T>Wae_2s^F$eE#^#L)OZcU@xXKy$mH68E`*`2-hVV%9?B?#_X5=d8ys)ux zE2qFj=~QuHMNv=B!t$!(3=7lA7iDzn%kndG5|i@t$`Xsq97<C4k~2z+Q;UoYjEr>+ zOm&S+6$~t`j7_bKjPxumOcb;Y46F<c@XInVFieqTU|^Ukn<_4<3bHOGC9SxTorhCA zRg_;=)YG#hwYbE%&^0$X&3kj7)Nv+GF*Z*5R8e7F@yT(reyoWpxtV#BH^{0?-X<%t z`K_!tlN1+!1q1(O{&)O4`0wz~=5OL($6vvJjK7C}{$@dkV19P~9}GN&<yDg_^p|XG OJi@X0frY#{qW}QVmQ#HI diff --git a/API/src/express/Server.ts b/API/src/express/Server.ts index e45eed1..329c81d 100644 --- a/API/src/express/Server.ts +++ b/API/src/express/Server.ts @@ -43,9 +43,9 @@ class Server { //TODO: Add routes and middlewares const routes = [ { path: '/', router: BaseRoutes}, - { path: '/guest', router: routerGuest }, - { path: '/gamer', router: routerGamer }, - { path: '/admin', router: routerAdmin } + { path: '/guests', router: routerGuest }, + { path: '/users', router: routerGamer }, + { path: '/admins', router: routerAdmin } ]; this.backend.use(express.json()) this.backend.use((req, res, next) => { diff --git a/API/src/routes/router-admin.ts b/API/src/routes/router-admin.ts index a8a1842..0a96a17 100644 --- a/API/src/routes/router-admin.ts +++ b/API/src/routes/router-admin.ts @@ -20,7 +20,7 @@ const router: express.Router = express.Router(); -router.get('/:admin/list-users', checkExistingUser, verifyToken, async (req: express.Request, res: express.Response) => { +router.get('/:admin/users', checkExistingUser, verifyToken, async (req: express.Request, res: express.Response) => { try { const users = await Database.getAllUsers(); res.status(StatusCodes.OK).json({users}); @@ -29,7 +29,7 @@ router.get('/:admin/list-users', checkExistingUser, verifyToken, async (req: exp } }); -router.get('/:admin/list-questions', checkExistingUser, verifyToken, async (req: express.Request, res: express.Response) => { +router.get('/:admin/questions', checkExistingUser, verifyToken, async (req: express.Request, res: express.Response) => { try { const questions = await Database.getAllQuestions(); questions.forEach(q => { @@ -44,11 +44,11 @@ router.get('/:admin/list-questions', checkExistingUser, verifyToken, async (req } }); -router.post('/:admin/create-user-account', checkExistingUser, checkUserFields, verifyToken, (req: express.Request, res: express.Response) => { +router.post('/:admin/users', checkExistingUser, checkUserFields, verifyToken, (req: express.Request, res: express.Response) => { createAccountCheck(req, res); }); -router.post('/:admin/create-question', checkExistingUser, checkQuestionFields, verifyToken, async (req: express.Request, res: express.Response) => { +router.post('/:admin/questions', checkExistingUser, checkQuestionFields, verifyToken, async (req: express.Request, res: express.Response) => { const data = req.body; const correctResponse: string = data.possibleResponse[data.correctResponse]; if (correctResponse !== undefined) { @@ -74,13 +74,13 @@ router.post('/:admin/create-question', checkExistingUser, checkQuestionFields, v } }); -router.put('/:admin/update-user-account', checkExistingUser, checkUsernameField, verifyToken, async (req: express.Request, res: express.Response) => { +router.put('/:admin/users/:username', checkExistingUser, checkUsernameField, verifyToken, async (req: express.Request, res: express.Response) => { const data=req.body; - const username = data.username; + const username = req.params.username; try{ const user = await User.findOne({where: {username}}); if(user){ - if(req.params.admin === data.username && data.accountType!==undefined){ + if(req.params.admin === username && data.accountType!==undefined){ res.status(StatusCodes.NOT_ACCEPTABLE).send(`Edit your account type is not possible`); return; } @@ -88,14 +88,14 @@ router.put('/:admin/update-user-account', checkExistingUser, checkUsernameField, const nbUserUpdated=await Database.updateUserAccount(data.username, data.password, data.firstname, data.lastname, data.email, data.accountType); if(nbUserUpdated){ res.status(StatusCodes.OK).json({ - message: `User ${data.username} updated` + message: `User ${username} updated` }); } }catch(error){ res.status(StatusCodes.BAD_REQUEST).json({error: `An error occured: ${error}`}); } }else{ - res.status(StatusCodes.NOT_FOUND).send(`The user ${data.username} not exist`); + res.status(StatusCodes.NOT_FOUND).send(`The user ${username} not exist`); } }catch (error){ res.status(StatusCodes.BAD_REQUEST).json({error: `An error occured: ${error}`}); @@ -105,9 +105,9 @@ router.put('/:admin/update-user-account', checkExistingUser, checkUsernameField, }); -router.put('/:admin/update-question', checkExistingUser,checkIdField, verifyToken, async (req: express.Request, res: express.Response) => { +router.put('/:admin/questions/:question_id', checkExistingUser,checkIdField, verifyToken, async (req: express.Request, res: express.Response) => { const data=req.body; - const id = data.id; + const id = req.params.question_id; try{ const question = await Question.findOne({where: {id}}); if(question){ @@ -131,16 +131,16 @@ router.put('/:admin/update-question', checkExistingUser,checkIdField, verifyToke -router.delete('/:admin/delete-user-account', checkExistingUser, checkUsernameField, verifyToken, async (req: express.Request, res: express.Response) => { - let data=req.body - if(req.params.admin !== data.username) { +router.delete('/:admin/users/:username', checkExistingUser, checkUsernameField, verifyToken, async (req: express.Request, res: express.Response) => { + let username=req.params.username; + if(req.params.admin !== username) { try{ - let userDelete=await Database.deleteUser(data.username); + let userDelete=await Database.deleteUser(username); console.log(`user delete= ${userDelete}`) if(userDelete === 1){ - res.status(StatusCodes.OK).json({message: `The user ${data.username} is successfully deleted`}); + res.status(StatusCodes.OK).json({message: `The user ${username} is successfully deleted`}); }else{ - res.status(StatusCodes.NOT_FOUND).send(`User "${data.username}" not exist`); + res.status(StatusCodes.NOT_FOUND).send(`User "${username}" not exist`); } }catch(error){ @@ -153,15 +153,15 @@ router.delete('/:admin/delete-user-account', checkExistingUser, checkUsernameFie }); -router.delete('/:admin/delete-question', checkExistingUser, checkIdField, verifyToken, async (req: express.Request, res: express.Response) => { - let data = req.body +router.delete('/:admin/questions/:question_id', checkExistingUser, checkIdField, verifyToken, async (req: express.Request, res: express.Response) => { + let questionId=parseInt(req.params.question_id); try { - let questionDelete = await Database.deleteQuestion(data.id); + let questionDelete = await Database.deleteQuestion(questionId); console.log(`question delete= ${questionDelete}`) if (questionDelete === 1) { - res.status(StatusCodes.OK).json({message: `The question ${data.id} is successfully deleted`}); + res.status(StatusCodes.OK).json({message: `The question ${questionId} is successfully deleted`}); } else { - res.status(StatusCodes.NOT_FOUND).send(`Question "${data.id}" not exist`); + res.status(StatusCodes.NOT_FOUND).send(`Question "${questionId}" not exist`); } } catch (error) { @@ -172,9 +172,9 @@ router.delete('/:admin/delete-question', checkExistingUser, checkIdField, verify }); -router.post('/:admin/get-user', checkExistingUser, verifyToken, async (req: express.Request, res: express.Response) => { - const data = req.body - let user=await Database.infoUser(data.username); +router.get('/:admin', checkExistingUser, verifyToken, async (req: express.Request, res: express.Response) => { + const username = req.params.admin + let user=await Database.infoUser(username); user.dataValues.password="CONFIDENTIAL!!!" if(user){ res.status(StatusCodes.OK).json({info_user: user.dataValues}); diff --git a/API/src/routes/router-gamer.ts b/API/src/routes/router-gamer.ts index 4159296..b4c9e5f 100644 --- a/API/src/routes/router-gamer.ts +++ b/API/src/routes/router-gamer.ts @@ -5,11 +5,8 @@ import {checkExistingUser, TokenRequest, verifyToken} from "./middleware"; const router: express.Router = express.Router(); -router.get('/', (req: express.Request, res: express.Response) => { - res.status(StatusCodes.OK).json({ message: 'Gamers route' }) -}); -router.get('/:username', checkExistingUser, verifyToken, (req: TokenRequest, res: express.Response) => { +router.get('/users/:username', checkExistingUser, verifyToken, (req: TokenRequest, res: express.Response) => { res.status(StatusCodes.OK).json({access_user: req.user}); }); diff --git a/API/src/routes/router-guest.ts b/API/src/routes/router-guest.ts index 3272887..e8bf882 100644 --- a/API/src/routes/router-guest.ts +++ b/API/src/routes/router-guest.ts @@ -10,19 +10,15 @@ const jwt = require('jsonwebtoken'); const router: express.Router = express.Router(); -router.get('/', (req: express.Request, res: express.Response) => { - res.status(StatusCodes.OK).json({ message: 'Guests route' }) -}); - -router.post('/create-account', checkUserFields, (req: express.Request, res: express.Response) => { +router.post('/users', checkUserFields, (req: express.Request, res: express.Response) => { createAccountCheck(req, res); }); -router.post('/:username', checkExistingUser, async (req: express.Request, res: express.Response) => { +router.post('/users/:username', checkExistingUser, async (req: express.Request, res: express.Response) => { const data = req.body let user=await Database.infoUser(req.params.username); if(user){ -- GitLab