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 { Box } from '../types/box'
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 boxEither = await boxService.getBox(req.params.title);
@ -97,6 +99,25 @@ 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);
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 = {
boxAddPieces,
boxRemovePiece,
@ -104,6 +125,7 @@ const boxController = {
allBoxes,
allBoxesFromDate,
boxById,
registerBox,
};
export default boxController;

View File

@ -7,8 +7,12 @@ boxRouter.get("/", boxController.allBoxes);
boxRouter.get("/from/:date", boxController.allBoxesFromDate);
boxRouter.post("/register", boxController.registerBox);
boxRouter.get("/:title", boxController.boxByTitle);
boxRouter.post("/:title", boxController.boxAddPieces);
boxRouter.delete("/:title", boxController.boxRemovePiece);
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) }));
}
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 = {
addPiecesToBox,
getBox,
getAllBoxes,
getAllBoxesFromDate,
removePieceFromBox
removePieceFromBox,
registerBox,
};
export default boxService;