diff --git a/back-end/src/controllers/model.controller.ts b/back-end/src/controllers/model.controller.ts index 17b2ffb..4767f7f 100644 --- a/back-end/src/controllers/model.controller.ts +++ b/back-end/src/controllers/model.controller.ts @@ -33,10 +33,17 @@ const modelById: RequestHandler<{ id: string; }> = async (req, res) => { res.render('model.ejs', { model }); }; + +const allModelsFromFans: RequestHandler = async (req, res) => { + const models = await modelService.getAllModelsFromFans(); + res.render('models.ejs', { models }); +}; + const modelController = { modelByName, allModels, modelById, + allModelsFromFans, }; export default modelController; diff --git a/back-end/src/routes/model.route.ts b/back-end/src/routes/model.route.ts index fa200b0..f519ebc 100644 --- a/back-end/src/routes/model.route.ts +++ b/back-end/src/routes/model.route.ts @@ -5,7 +5,9 @@ const modelRouter = express.Router(); modelRouter.get("/", modelController.allModels); -modelRouter.get("/:name", modelController.modelByName); +modelRouter.get("/byname/:name", modelController.modelByName); + +modelRouter.get("/fromfan", modelController.allModelsFromFans); modelRouter.get("/byid/:id", modelController.modelById); diff --git a/back-end/src/services/model.service.ts b/back-end/src/services/model.service.ts index 881ddd0..b5d6be1 100644 --- a/back-end/src/services/model.service.ts +++ b/back-end/src/services/model.service.ts @@ -44,7 +44,21 @@ const getModel = async (idOrName: number | string): Promise { const client = new_client(); await client.connect(); + const res = await client.query("SELECT * FROM modeles"); + + await client.end(); + return res.rows.map(db2Model); +} + +const getAllModelsFromFans = async () => { + const client = new_client(); + await client.connect(); + + const res = await client.query( + "SELECT id_modele FROM modeles WHERE id_membre IS NOT NULL" + ); + await client.end(); return res.rows.map(db2Model); } @@ -76,6 +90,7 @@ const modelService = { getModel, getAllModels, createModel, + getAllModelsFromFans, }; export default modelService; diff --git a/back-end/src/templates/models.ejs b/back-end/src/templates/models.ejs index 81b3445..e571f5f 100644 --- a/back-end/src/templates/models.ejs +++ b/back-end/src/templates/models.ejs @@ -12,6 +12,8 @@ <%- include('partials/header.ejs') %> +

Liste des modèles proposés par des fans

+

Liste des modeles

@@ -19,7 +21,7 @@