diff --git a/back-end/src/controllers/box.controller.ts b/back-end/src/controllers/box.controller.ts index aaaf913..793c368 100644 --- a/back-end/src/controllers/box.controller.ts +++ b/back-end/src/controllers/box.controller.ts @@ -156,28 +156,24 @@ const boxById: RequestHandler<{ id: string; }> = async (req, res) => { res.render('box.ejs', { box }); }; +const removeBoxFromMember : RequestHandler<{ id_box: string, id_member: string }> = async (req, res) => { + const id_box = parseInt(req.params.id_box); + const id_member = parseInt(req.params.id_member); + await boxService.removeBoxFromMember(id_box, id_member) + res.sendStatus(200); +} + const registerBox: RequestHandler = async (req, res, next) => { const id_box = parseInt(req.body.id_box); const id_member = parseInt(req.body.id_member); const quantity = parseInt(req.body.quantity); + if (isNaN(id_box) || isNaN(id_member) || isNaN(quantity)) + next(); + await boxService.registerBox(id_box, id_member, quantity); - const memberEither = await memberService.getMember(id_member); - - if (memberEither.hasRight) { - console.error(memberEither.right); - next(); - return; - } - - const member = memberEither.left; - const models = await modelService.getAllBuildableModels(member.id_member); - const boxes = await boxService.getBoxesFromMember(member.id_member); - const pieces = await getBuyedPiecesFromMember(member.id_member); - const allboxes = await boxService.getAllBoxes(); - - res.render('member.ejs', { member, models, boxes, pieces, allboxes }); + res.redirect('/membres/byid/' + id_member); }; const boxController = { @@ -189,7 +185,8 @@ const boxController = { allBoxesFromDate, boxById, registerBox, - boxRemovePieceById + boxRemovePieceById, + removeBoxFromMember, }; export default boxController; diff --git a/back-end/src/routes/box.route.ts b/back-end/src/routes/box.route.ts index 6948cbc..30585be 100644 --- a/back-end/src/routes/box.route.ts +++ b/back-end/src/routes/box.route.ts @@ -12,6 +12,8 @@ boxRouter.post("/register", boxController.registerBox); boxRouter.get("/:title", boxController.boxByTitle); boxRouter.post("/:title", boxController.boxAddPieces); +boxRouter.delete("/:id_box/:id_member", boxController.removeBoxFromMember); + boxRouter.delete("/byid/:id_box", boxController.boxRemovePieceById); boxRouter.post("/byid/:id_box", boxController.boxAddPiecesById); diff --git a/back-end/src/services/box.service.ts b/back-end/src/services/box.service.ts index db19925..8d0f142 100644 --- a/back-end/src/services/box.service.ts +++ b/back-end/src/services/box.service.ts @@ -126,6 +126,12 @@ const registerBox = async (id_box: number, id_member: number, quantity: number) await client.query("INSERT INTO enregistrer VALUES($1, $2, $3);", [id_box, id_member, quantity]); } +const removeBoxFromMember = async (id_box: number, id_member: number) => { + const client = new_client(); + + await client.query("DELETE FROM enregistrer WHERE id_boite=$1 AND id_membre=$2;", [id_box, id_member]); +} + const boxService = { addPiecesToBox, getBox, @@ -134,6 +140,7 @@ const boxService = { removePieceFromBox, registerBox, getBoxesFromMember, + removeBoxFromMember, }; export default boxService; diff --git a/back-end/src/static/css/reset.css b/back-end/src/static/css/reset.css index b3330a1..effdb0b 100644 --- a/back-end/src/static/css/reset.css +++ b/back-end/src/static/css/reset.css @@ -6,6 +6,11 @@ font-family: sans-serif; } +button { + background-color: transparent; + cursor: pointer; +} + pre, code { font-family: monospace; } diff --git a/back-end/src/templates/member.ejs b/back-end/src/templates/member.ejs index 437ad77..2886553 100644 --- a/back-end/src/templates/member.ejs +++ b/back-end/src/templates/member.ejs @@ -21,7 +21,15 @@ padding: .5rem 1rem; } + + i { color: var(--bg); } + + @@ -69,6 +77,7 @@ Nombre de pièces Quantité + @@ -87,6 +96,7 @@ <%=box.second%> + <% }); %>