merge
This commit is contained in:
parent
aba7562d91
commit
1577817111
@ -29,7 +29,7 @@ app.use(morgan(log_format));
|
||||
// Defines endpoints
|
||||
app.use(routes);
|
||||
|
||||
process.on('*', (e) => {
|
||||
process.on('uncaughtException', (e) => {
|
||||
console.error(`Unhandled error catched: ${e}`);
|
||||
});
|
||||
|
||||
|
@ -6,6 +6,7 @@ import { Box } from '../types/box'
|
||||
import { Piece } from '../types/piece'
|
||||
import memberService from "../services/member.service";
|
||||
import modelService from "../services/model.service";
|
||||
import { getBuyedPiecesFromMember } from "../services/pieces.service";
|
||||
|
||||
const boxByTitle: RequestHandler<{ title: string; }> = async (req, res) => {
|
||||
const boxEither = await boxService.getBox(req.params.title);
|
||||
@ -99,23 +100,28 @@ const boxById: RequestHandler<{ id: string; }> = async (req, res) => {
|
||||
res.render('box.ejs', { box });
|
||||
};
|
||||
|
||||
const registerBox: RequestHandler<{ id_box: string; id_member: string; quantity: string; }> = async (req, res, next) => {
|
||||
const id_box = parseInt(req.params.id_box);
|
||||
const id_member = parseInt(req.params.id_member);
|
||||
const quantity = parseInt(req.params.quantity);
|
||||
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);
|
||||
|
||||
await boxService.registerBox(id_box, id_member, quantity);
|
||||
|
||||
const memberEither = await memberService.getMember(id_member);
|
||||
const models = await modelService.getAllBuildableModels(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 });
|
||||
res.render('member.ejs', { member, models, boxes, pieces, allboxes });
|
||||
};
|
||||
|
||||
const boxController = {
|
||||
|
@ -16,8 +16,9 @@ const memberByName: RequestHandler<{ name: string; }> = async (req, res) => {
|
||||
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 });
|
||||
res.render('member.ejs', { member, models, boxes, pieces, allboxes });
|
||||
};
|
||||
|
||||
const allMembers: RequestHandler = async (_req, res) => {
|
||||
@ -43,8 +44,9 @@ const memberById: RequestHandler<{ id: string; }> = async (req, res) => {
|
||||
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 });
|
||||
res.render('member.ejs', { member, models, boxes, pieces, allboxes });
|
||||
};
|
||||
|
||||
const memberController = {
|
||||
|
@ -53,6 +53,7 @@ async function getBoxesFromMember(id_member: number): Promise<Array<Pair<Box, nu
|
||||
const client = new_client()
|
||||
const res = await client.query(`SELECT id_boite, quantite_enregistrer FROM enregistrer WHERE id_membre = $1;`, [id_member])
|
||||
const arr: Array<Pair<Box, number>> = new Array();
|
||||
|
||||
for (let index = 0; index < res.rows.length; index++) {
|
||||
const box: Either<Box, string> = await getBox(res.rows[index]['id_boite']);
|
||||
if (box.hasRight)
|
||||
@ -115,7 +116,14 @@ const getAllBoxesFromDate = async (date: Date) => {
|
||||
const registerBox = async (id_box: number, id_member: number, quantity: number) => {
|
||||
const client = new_client();
|
||||
|
||||
client.query("INSERT INTO enregistrer ($1, $2, $3);", [id_box, id_member, quantity]);
|
||||
const boxes = await boxService.getBoxesFromMember(id_member);
|
||||
|
||||
if (boxes.map(el => el.first).find(el => el.id == id_box)) {
|
||||
const qty = await client.query("SELECT quantite_enregistrer FROM enregistrer WHERE id_boite=$1 AND id_membre=$2;", [id_box, id_member]);
|
||||
await client.query("UPDATE enregistrer SET quantite_enregistrer=$3 WHERE id_boite=$1 AND id_membre=$2;", [id_box, id_member, qty.rows[0].quantite_enregistrer + quantity]);
|
||||
}
|
||||
else
|
||||
await client.query("INSERT INTO enregistrer VALUES($1, $2, $3);", [id_box, id_member, quantity]);
|
||||
}
|
||||
|
||||
const boxService = {
|
||||
|
@ -9,6 +9,19 @@
|
||||
</title>
|
||||
|
||||
<%- include('partials/links.ejs') %>
|
||||
<style>
|
||||
#box-register-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-width: max(30vw, 60ch);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#box-register-form select, #box-register-form input {
|
||||
padding: .5rem 1rem;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@ -25,13 +38,29 @@
|
||||
|
||||
<pre>
|
||||
id: <%= member.id_member%>
|
||||
name: <%= member.name%>
|
||||
name: <%= member.name%>
|
||||
</pre>
|
||||
|
||||
<h2>Liste des boites enregistrées</h2>
|
||||
|
||||
<div class="table">
|
||||
<form name="title" action="/boxes/register" id="box-register-form" method="POST">
|
||||
<input type="hidden" name="id_member" id="id_member" value="<%= member.id_member %>">
|
||||
|
||||
<label for="id_box">id de la boite</label>
|
||||
<select name="id_box" id="id_box">
|
||||
|
||||
<% allboxes.forEach(function(box) { %>
|
||||
<option value="<%=box.id%>"><%=box.id%></option>
|
||||
<% }); %>
|
||||
</select>
|
||||
|
||||
<label for="quantity">Quantité</label>
|
||||
<input type="number" name="quantity" min="0" step="1" id="quantity">
|
||||
|
||||
<input type="submit" value="Ajouter">
|
||||
</form>
|
||||
|
||||
<div class="table">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
Loading…
x
Reference in New Issue
Block a user