feat: add list of buyed piece in member profile
This commit is contained in:
parent
898f527bf9
commit
72c1accdcf
@ -2,6 +2,7 @@ import { RequestHandler } from "express";
|
|||||||
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 boxService from "../services/box.service";
|
import boxService from "../services/box.service";
|
||||||
|
import { getBuyedPiecesFromMember } from "../services/pieces.service";
|
||||||
|
|
||||||
const memberByName: RequestHandler<{ name: string; }> = async (req, res) => {
|
const memberByName: RequestHandler<{ name: string; }> = async (req, res) => {
|
||||||
const memberEither = await memberService.getMember(req.params.name);
|
const memberEither = await memberService.getMember(req.params.name);
|
||||||
@ -14,8 +15,9 @@ const memberByName: RequestHandler<{ name: string; }> = async (req, res) => {
|
|||||||
const member = memberEither.left;
|
const member = memberEither.left;
|
||||||
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);
|
||||||
|
|
||||||
res.render('member.ejs', { member, models, boxes });
|
res.render('member.ejs', { member, models, boxes, pieces });
|
||||||
};
|
};
|
||||||
|
|
||||||
const allMembers: RequestHandler = async (_req, res) => {
|
const allMembers: RequestHandler = async (_req, res) => {
|
||||||
@ -40,9 +42,9 @@ const memberById: RequestHandler<{ id: string; }> = async (req, res) => {
|
|||||||
const member = memberEither.left;
|
const member = memberEither.left;
|
||||||
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);
|
||||||
console.log(boxes);
|
const pieces = await getBuyedPiecesFromMember(member.id_member);
|
||||||
|
|
||||||
res.render('member.ejs', { member, models, boxes });
|
res.render('member.ejs', { member, models, boxes, pieces });
|
||||||
};
|
};
|
||||||
|
|
||||||
const memberController = {
|
const memberController = {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { new_client } from '../db/db_client';
|
import { new_client } from '../db/db_client';
|
||||||
import { Colour, Pattern, Shape, Piece, ComplexPiece } from '../types/piece';
|
import { Colour, Pattern, Shape, Piece, ComplexPiece } from '../types/piece';
|
||||||
import { Either, eitherLeft, eitherRight, eitherFormatError } from '../utils/utils';
|
import { Either, eitherLeft, eitherRight, eitherFormatError, createPair } from '../utils/utils';
|
||||||
|
import { Pair } from '../utils/utils';
|
||||||
|
|
||||||
async function getEntity<T>(table: string, column: string, value: string | number, f: (o: Object) => T): Promise<Either<T, string>> {
|
async function getEntity<T>(table: string, column: string, value: string | number, f: (o: Object) => T): Promise<Either<T, string>> {
|
||||||
const client = new_client();
|
const client = new_client();
|
||||||
@ -107,4 +108,22 @@ async function createPiece(colour: Colour, pattern: Pattern, shape: Shape): Prom
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
export { getEntity, getEntities, registerEntity, toColour, getColour, getColours, createColour, toPattern, getPattern, getPatterns, createPattern, toShape, getShape, getShapes, createShape, getPiece, getPieces, createPiece };
|
async function getBuyedPiecesFromMember(id_member: number): Promise<Array<Pair<Piece, number>>> {
|
||||||
|
const client = new_client();
|
||||||
|
const res = await client.query(`SELECT id_piece, quantite_acheter FROM acheter WHERE id_membre = $1;`, [id_member]);
|
||||||
|
|
||||||
|
const arr = new Array();
|
||||||
|
|
||||||
|
for (let i = 0; i < res.rows.length; ++i) {
|
||||||
|
const piece: Either<Piece, String> = await getPiece(res.rows[i]['id_piece']);
|
||||||
|
if (piece.hasRight)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
arr.push(createPair(piece.left, res.rows[i]['quantite_acheter']));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
export { getBuyedPiecesFromMember, getEntity, getEntities, registerEntity, toColour, getColour, getColours, createColour, toPattern, getPattern, getPatterns, createPattern, toShape, getShape, getShapes, createShape, getPiece, getPieces, createPiece };
|
||||||
|
@ -63,6 +63,42 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
Liste des pièces achetées
|
||||||
|
</h2>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Id Pièce</th>
|
||||||
|
<th>Couleur</th>
|
||||||
|
<th>Motif</th>
|
||||||
|
<th>Forme</th>
|
||||||
|
<th>Quantité</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% pieces.forEach(function(p) { %>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<%=p.first.id_piece%>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%=p.first.colour.name%> (<%=p.first.colour.id_colour%>)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%=p.first.pattern.name%> (<%=p.first.pattern.id_pattern%>)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%=p.first.shape.name%> (<%=p.first.shape.id_shape%>)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<%=p.second%>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% }); %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
<h2>Liste des modèles faisables</h2>
|
<h2>Liste des modèles faisables</h2>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user