feat: add endpoint to register box
This commit is contained in:
parent
ee79781fb2
commit
12da240bad
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user