merge : new database method.
This commit is contained in:
commit
052a69633d
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
|
||||||
<% }); %>
|
<% }); %>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user