merge : new database method.

This commit is contained in:
damien DELPY 2024-12-04 18:17:41 +01:00
commit 052a69633d
No known key found for this signature in database
5 changed files with 37 additions and 16 deletions

View File

@ -156,28 +156,24 @@ const boxById: RequestHandler<{ id: string; }> = async (req, res) => {
res.render('box.ejs', { box }); 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 registerBox: RequestHandler = async (req, res, next) => {
const id_box = parseInt(req.body.id_box); const id_box = parseInt(req.body.id_box);
const id_member = parseInt(req.body.id_member); const id_member = parseInt(req.body.id_member);
const quantity = parseInt(req.body.quantity); const quantity = parseInt(req.body.quantity);
if (isNaN(id_box) || isNaN(id_member) || isNaN(quantity))
next();
await boxService.registerBox(id_box, id_member, quantity); await boxService.registerBox(id_box, id_member, quantity);
const memberEither = await memberService.getMember(id_member); res.redirect('/membres/byid/' + 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 });
}; };
const boxController = { const boxController = {
@ -189,7 +185,8 @@ const boxController = {
allBoxesFromDate, allBoxesFromDate,
boxById, boxById,
registerBox, registerBox,
boxRemovePieceById boxRemovePieceById,
removeBoxFromMember,
}; };
export default boxController; export default boxController;

View File

@ -12,6 +12,8 @@ boxRouter.post("/register", boxController.registerBox);
boxRouter.get("/:title", boxController.boxByTitle); boxRouter.get("/:title", boxController.boxByTitle);
boxRouter.post("/:title", boxController.boxAddPieces); boxRouter.post("/:title", boxController.boxAddPieces);
boxRouter.delete("/:id_box/:id_member", boxController.removeBoxFromMember);
boxRouter.delete("/byid/:id_box", boxController.boxRemovePieceById); boxRouter.delete("/byid/:id_box", boxController.boxRemovePieceById);
boxRouter.post("/byid/:id_box", boxController.boxAddPiecesById); boxRouter.post("/byid/:id_box", boxController.boxAddPiecesById);

View File

@ -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]); 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 = { const boxService = {
addPiecesToBox, addPiecesToBox,
getBox, getBox,
@ -134,6 +140,7 @@ const boxService = {
removePieceFromBox, removePieceFromBox,
registerBox, registerBox,
getBoxesFromMember, getBoxesFromMember,
removeBoxFromMember,
}; };
export default boxService; export default boxService;

View File

@ -6,6 +6,11 @@
font-family: sans-serif; font-family: sans-serif;
} }
button {
background-color: transparent;
cursor: pointer;
}
pre, code { pre, code {
font-family: monospace; font-family: monospace;
} }

View File

@ -21,7 +21,15 @@
padding: .5rem 1rem; padding: .5rem 1rem;
} }
i { color: var(--bg); }
</style> </style>
<script>
function removeBox(id) {
fetch(window.location.origin + '/boxes/' + id + '/' + <%= member.id_member%>, { method: 'DELETE' }).then(r => window.location.reload());
}
</script>
</head> </head>
<body> <body>
@ -69,6 +77,7 @@
<th>Nombre de pièces</th> <th>Nombre de pièces</th>
<th>Quantité</th> <th>Quantité</th>
<th></th> <th></th>
<th></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -87,6 +96,7 @@
<%=box.second%> <%=box.second%>
</td> </td>
<td><a href="/boxes/byid/<%=box.first.id%>"><i class="fa-solid fa-eye"></i></a></td> <td><a href="/boxes/byid/<%=box.first.id%>"><i class="fa-solid fa-eye"></i></a></td>
<td><button onclick="removeBox(<%=box.first.id%>)"><i class="fa-solid fa-trash"></i></button></td>
</tr> </tr>
<% }); %> <% }); %>