merge
This commit is contained in:
parent
aba7562d91
commit
1577817111
@ -29,7 +29,7 @@ app.use(morgan(log_format));
|
|||||||
// Defines endpoints
|
// Defines endpoints
|
||||||
app.use(routes);
|
app.use(routes);
|
||||||
|
|
||||||
process.on('*', (e) => {
|
process.on('uncaughtException', (e) => {
|
||||||
console.error(`Unhandled error catched: ${e}`);
|
console.error(`Unhandled error catched: ${e}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import { Box } from '../types/box'
|
|||||||
import { Piece } from '../types/piece'
|
import { Piece } from '../types/piece'
|
||||||
import memberService from "../services/member.service";
|
import memberService from "../services/member.service";
|
||||||
import modelService from "../services/model.service";
|
import modelService from "../services/model.service";
|
||||||
|
import { getBuyedPiecesFromMember } from "../services/pieces.service";
|
||||||
|
|
||||||
const boxByTitle: RequestHandler<{ title: string; }> = async (req, res) => {
|
const boxByTitle: RequestHandler<{ title: string; }> = async (req, res) => {
|
||||||
const boxEither = await boxService.getBox(req.params.title);
|
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 });
|
res.render('box.ejs', { box });
|
||||||
};
|
};
|
||||||
|
|
||||||
const registerBox: RequestHandler<{ id_box: string; id_member: string; quantity: string; }> = async (req, res, next) => {
|
const registerBox: RequestHandler = async (req, res, next) => {
|
||||||
const id_box = parseInt(req.params.id_box);
|
const id_box = parseInt(req.body.id_box);
|
||||||
const id_member = parseInt(req.params.id_member);
|
const id_member = parseInt(req.body.id_member);
|
||||||
const quantity = parseInt(req.params.quantity);
|
const quantity = parseInt(req.body.quantity);
|
||||||
|
|
||||||
await boxService.registerBox(id_box, id_member, quantity);
|
await boxService.registerBox(id_box, id_member, quantity);
|
||||||
|
|
||||||
const memberEither = await memberService.getMember(id_member);
|
const memberEither = await memberService.getMember(id_member);
|
||||||
const models = await modelService.getAllBuildableModels(id_member);
|
|
||||||
|
|
||||||
if (memberEither.hasRight) {
|
if (memberEither.hasRight) {
|
||||||
|
console.error(memberEither.right);
|
||||||
next();
|
next();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const member = memberEither.left;
|
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 = {
|
const boxController = {
|
||||||
|
@ -16,8 +16,9 @@ const memberByName: RequestHandler<{ name: string; }> = async (req, res) => {
|
|||||||
const models = await modelService.getAllBuildableModels(member.id_member);
|
const models = await modelService.getAllBuildableModels(member.id_member);
|
||||||
const boxes = await boxService.getBoxesFromMember(member.id_member);
|
const boxes = await boxService.getBoxesFromMember(member.id_member);
|
||||||
const pieces = await getBuyedPiecesFromMember(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) => {
|
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 models = await modelService.getAllBuildableModels(member.id_member);
|
||||||
const boxes = await boxService.getBoxesFromMember(member.id_member);
|
const boxes = await boxService.getBoxesFromMember(member.id_member);
|
||||||
const pieces = await getBuyedPiecesFromMember(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 = {
|
const memberController = {
|
||||||
|
@ -53,6 +53,7 @@ async function getBoxesFromMember(id_member: number): Promise<Array<Pair<Box, nu
|
|||||||
const client = new_client()
|
const client = new_client()
|
||||||
const res = await client.query(`SELECT id_boite, quantite_enregistrer FROM enregistrer WHERE id_membre = $1;`, [id_member])
|
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();
|
const arr: Array<Pair<Box, number>> = new Array();
|
||||||
|
|
||||||
for (let index = 0; index < res.rows.length; index++) {
|
for (let index = 0; index < res.rows.length; index++) {
|
||||||
const box: Either<Box, string> = await getBox(res.rows[index]['id_boite']);
|
const box: Either<Box, string> = await getBox(res.rows[index]['id_boite']);
|
||||||
if (box.hasRight)
|
if (box.hasRight)
|
||||||
@ -115,7 +116,14 @@ const getAllBoxesFromDate = async (date: Date) => {
|
|||||||
const registerBox = async (id_box: number, id_member: number, quantity: number) => {
|
const registerBox = async (id_box: number, id_member: number, quantity: number) => {
|
||||||
const client = new_client();
|
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 = {
|
const boxService = {
|
||||||
|
@ -9,6 +9,19 @@
|
|||||||
</title>
|
</title>
|
||||||
|
|
||||||
<%- include('partials/links.ejs') %>
|
<%- 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>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -25,13 +38,29 @@
|
|||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
id: <%= member.id_member%>
|
id: <%= member.id_member%>
|
||||||
name: <%= member.name%>
|
name: <%= member.name%>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h2>Liste des boites enregistrées</h2>
|
<h2>Liste des boites enregistrées</h2>
|
||||||
|
|
||||||
|
<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">
|
<div class="table">
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user