diff --git a/back-end/src/controllers/piece.controller.ts b/back-end/src/controllers/piece.controller.ts index 73a5d79..24e5d6f 100644 --- a/back-end/src/controllers/piece.controller.ts +++ b/back-end/src/controllers/piece.controller.ts @@ -1,4 +1,4 @@ -import { Request, Response } from 'express'; +import { Request, RequestHandler, Response } from 'express'; import { Colour, Pattern, Shape, Piece, ComplexPiece } from '../types/piece'; import { Either, eitherLeft, eitherRight, eitherFormatError } from '../utils/utils'; import { getEntity, getEntities, registerEntity, toColour, getColour, getColours, createColour, toPattern, getPattern, getPatterns, createPattern, toShape, getShape, getShapes, createShape, getPiece, getPieces, createPiece } from '../services/pieces.service'; @@ -90,4 +90,36 @@ const registerPiece = async (req: Request, res: Response) => { res.send(createPiece(colour.left, pattern.left, shape.left)); }; -export { retrieveColour, retrieveColours, registerColour, retrievePattern, retrievePatterns, registerPattern, retrieveShape, retrieveShapes, registerShape, retrievePiece, retrievePieces, registerPiece }; +const allPieces: RequestHandler = async (_req, res) => { + const pieces = await getPieces(); + res.render('pieces.ejs', { pieces }); +}; + +const pieceById: RequestHandler<{ id: number; }> = async (req, res) => { + const pieceEither: Either = await getPiece(req.params.id); + if (pieceEither.hasRight) { + res.status(400).send(); + return; + } + const piece: Piece = pieceEither.left; + res.render('piece.ejs', { piece }); +}; + +const pieceController = { + allPieces, + pieceById, + retrieveColour, + retrieveColours, + registerColour, + retrievePattern, + retrievePatterns, + registerPattern, + retrieveShape, + retrieveShapes, + registerShape, + retrievePiece, + retrievePieces, + registerPiece +}; + +export default pieceController; diff --git a/back-end/src/routes/index.ts b/back-end/src/routes/index.ts index b97c54c..f5470bc 100644 --- a/back-end/src/routes/index.ts +++ b/back-end/src/routes/index.ts @@ -18,8 +18,8 @@ routes.get("/rendu", (_req, res) => { routes.use("/static", express.static(path.join(__dirname, '../static'))); routes.use("/auth", authRoute); -routes.use("/marques", getUsername, verifyAuthentication, marquesRoute); -routes.use("/pieces", getUsername, verifyAuthentication, piecesRoute); +routes.use("/marques", marquesRoute); +routes.use("/pieces", piecesRoute); routes.use("/membres", memberRouter); routes.use("/models", modelRouter); routes.use("/boxes", boxRouter); diff --git a/back-end/src/routes/piece.route.ts b/back-end/src/routes/piece.route.ts index 9679516..2d6f6ea 100644 --- a/back-end/src/routes/piece.route.ts +++ b/back-end/src/routes/piece.route.ts @@ -1,19 +1,19 @@ import express from 'express'; -import { retrieveColour, retrieveColours, registerColour, retrievePattern, retrievePatterns, registerPattern, retrieveShape, retrieveShapes, registerShape, retrievePiece, retrievePieces, registerPiece } from '../controllers/piece.controller'; +import pieceController from '../controllers/piece.controller'; const router = express.Router(); -router.get("/colour", retrieveColours); -router.get("/colour/:id", retrieveColour); -router.post("/colour/register", registerColour); -router.get("/pattern", retrievePatterns); -router.get("/pattern/:id", retrievePattern); -router.post("/pattern/register", registerPattern); -router.get("/shape", retrieveShapes); -router.get("/shape/:id", retrieveShape); -router.post("/shape/register", registerShape); -router.get("/", retrievePieces); -router.get("/:id", retrievePiece); -router.post("/register", registerPiece); +router.get("/colour", pieceController.retrieveColours); +router.get("/colour/:id", pieceController.retrieveColour); +router.post("/colour/register", pieceController.registerColour); +router.get("/pattern", pieceController.retrievePatterns); +router.get("/pattern/:id", pieceController.retrievePattern); +router.post("/pattern/register", pieceController.registerPattern); +router.get("/shape", pieceController.retrieveShapes); +router.get("/shape/:id", pieceController.retrieveShape); +router.post("/shape/register", pieceController.registerShape); +router.get("/", pieceController.allPieces); +router.get("/:id", pieceController.pieceById); +router.post("/register", pieceController.registerPiece); export default router; diff --git a/back-end/src/templates/piece.ejs b/back-end/src/templates/piece.ejs new file mode 100644 index 0000000..0d43a39 --- /dev/null +++ b/back-end/src/templates/piece.ejs @@ -0,0 +1,44 @@ + + + + + + + + Information - <%=piece.id_piece%> + + + <%- include('partials/links.ejs') %> + + + + <%- include('partials/header.ejs') %> + +
+

+ Information de la pièce +

+ + + + + + + + + + + + + + + + + +
Id PièceCouleurMotifForme
<%=piece.id_piece%><%=piece.colour.name%> (<%=piece.colour.id_colour%>)<%=piece.pattern.name%> (<%=piece.pattern.id_pattern%>)<%=piece.shape.name%> (<%=piece.shape.id_shape%>)
+ +
+ + + + diff --git a/back-end/src/templates/pieces.ejs b/back-end/src/templates/pieces.ejs new file mode 100644 index 0000000..a1bfd89 --- /dev/null +++ b/back-end/src/templates/pieces.ejs @@ -0,0 +1,47 @@ + + + + + + + + Liste des membres + + + <%- include('partials/links.ejs') %> + + + + <%- include('partials/header.ejs') %> + +
+

+ Liste des pièces +

+ + + + + + + + + + + <% pieces.forEach(function(p) { %> + + + + + + + + <% }); %> + +
Id PièceCouleurMotifForme
<%=p.id_piece%><%=p.colour.name%> (<%=p.colour.id_colour%>)<%=p.pattern.name%> (<%=p.pattern.id_pattern%>)<%=p.shape.name%> (<%=p.shape.id_shape%>)
+ +
+ + + +