feat: add endpoint to register box

This commit is contained in:
Nemo D'ACREMONT 2024-12-03 18:28:41 +01:00
parent ee79781fb2
commit 12da240bad
No known key found for this signature in database
GPG Key ID: 6E5BCE8022FA8276
3 changed files with 34 additions and 1 deletions

View File

@ -4,6 +4,8 @@ import boxService from "../services/box.service";
import { Either, eitherLeft, eitherRight, eitherFormatError, Pair, createPair } from '../utils/utils'; import { Either, eitherLeft, eitherRight, eitherFormatError, Pair, createPair } from '../utils/utils';
import { Box } from '../types/box' import { Box } from '../types/box'
import { Piece } from '../types/piece' import { Piece } from '../types/piece'
import memberService from "../services/member.service";
import modelService from "../services/model.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);
@ -97,6 +99,25 @@ 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 id_box = parseInt(req.params.id_box);
const id_member = parseInt(req.params.id_member);
const quantity = parseInt(req.params.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) {
next();
return;
}
const member = memberEither.left;
res.render('member.ejs', { member, models });
};
const boxController = { const boxController = {
boxAddPieces, boxAddPieces,
boxRemovePiece, boxRemovePiece,
@ -104,6 +125,7 @@ const boxController = {
allBoxes, allBoxes,
allBoxesFromDate, allBoxesFromDate,
boxById, boxById,
registerBox,
}; };
export default boxController; export default boxController;

View File

@ -7,8 +7,12 @@ boxRouter.get("/", boxController.allBoxes);
boxRouter.get("/from/:date", boxController.allBoxesFromDate); boxRouter.get("/from/:date", boxController.allBoxesFromDate);
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("/:title", boxController.boxRemovePiece); boxRouter.delete("/:title", boxController.boxRemovePiece);
boxRouter.get("/byid/:id", boxController.boxById); boxRouter.get("/byid/:id", boxController.boxById);

View File

@ -97,12 +97,19 @@ const getAllBoxesFromDate = async (date: Date) => {
return await Promise.all(res.rows.map(async (el) => { return await db2box(el) })); return await Promise.all(res.rows.map(async (el) => { return await db2box(el) }));
} }
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 boxService = { const boxService = {
addPiecesToBox, addPiecesToBox,
getBox, getBox,
getAllBoxes, getAllBoxes,
getAllBoxesFromDate, getAllBoxesFromDate,
removePieceFromBox removePieceFromBox,
registerBox,
}; };
export default boxService; export default boxService;