feat: add get models by note
This commit is contained in:
parent
6ec761cdd7
commit
7824277239
@ -34,16 +34,22 @@ const modelById: RequestHandler<{ id: string; }> = async (req, res) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const allModelsFromFans: RequestHandler = async (req, res) => {
|
const allModelsFromFans: RequestHandler = async (_req, res) => {
|
||||||
const models = await modelService.getAllModelsFromFans();
|
const models = await modelService.getAllModelsFromFans();
|
||||||
res.render('models.ejs', { models });
|
res.render('models.ejs', { models });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const allModelsByNote: RequestHandler = async (_req, res) => {
|
||||||
|
const models = await modelService.getAllModelsByNote();
|
||||||
|
res.render('models.ejs', { models });
|
||||||
|
};
|
||||||
|
|
||||||
const modelController = {
|
const modelController = {
|
||||||
modelByName,
|
modelByName,
|
||||||
allModels,
|
allModels,
|
||||||
modelById,
|
modelById,
|
||||||
allModelsFromFans,
|
allModelsFromFans,
|
||||||
|
allModelsByNote,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default modelController;
|
export default modelController;
|
||||||
|
@ -9,6 +9,8 @@ modelRouter.get("/byname/:name", modelController.modelByName);
|
|||||||
|
|
||||||
modelRouter.get("/fromfan", modelController.allModelsFromFans);
|
modelRouter.get("/fromfan", modelController.allModelsFromFans);
|
||||||
|
|
||||||
|
modelRouter.get("/bynote", modelController.allModelsByNote);
|
||||||
|
|
||||||
modelRouter.get("/byid/:id", modelController.modelById);
|
modelRouter.get("/byid/:id", modelController.modelById);
|
||||||
|
|
||||||
export default modelRouter;
|
export default modelRouter;
|
||||||
|
@ -63,6 +63,18 @@ const getAllModelsFromFans = async () => {
|
|||||||
return res.rows.map(db2Model);
|
return res.rows.map(db2Model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getAllModelsByNote = async () => {
|
||||||
|
const client = new_client();
|
||||||
|
await client.connect();
|
||||||
|
|
||||||
|
const res = await client.query(
|
||||||
|
"SELECT * FROM noter GROUP BY id_modele ORDER BY AVG(note_noter) DESC"
|
||||||
|
);
|
||||||
|
|
||||||
|
await client.end();
|
||||||
|
return res.rows.map(db2Model);
|
||||||
|
}
|
||||||
|
|
||||||
const createModel = async (name: string, url: string, creator: number, inheritFrom: number): Promise<Either<Model, string>> => {
|
const createModel = async (name: string, url: string, creator: number, inheritFrom: number): Promise<Either<Model, string>> => {
|
||||||
const gettingModel = await getModel(name);
|
const gettingModel = await getModel(name);
|
||||||
if (!gettingModel.hasRight) {
|
if (!gettingModel.hasRight) {
|
||||||
@ -91,6 +103,7 @@ const modelService = {
|
|||||||
getAllModels,
|
getAllModels,
|
||||||
createModel,
|
createModel,
|
||||||
getAllModelsFromFans,
|
getAllModelsFromFans,
|
||||||
|
getAllModelsByNote,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default modelService;
|
export default modelService;
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
<a href="/models/fromfan"><p>Liste des modèles proposés par des fans</p></a>
|
<a href="/models/fromfan"><p>Liste des modèles proposés par des fans</p></a>
|
||||||
|
|
||||||
|
<a href="/models/bynote"><p>Liste des modèles par note décroissante</p></a>
|
||||||
|
|
||||||
<a href="javascript:let now = new Date();now.setUTCFullYear(now.getUTCFullYear() - 5);window.location.pathname = '/boxes/from/' + `${now.getUTCFullYear()}-${now.getUTCMonth() + 1}-${now.getUTCDate()}`;">
|
<a href="javascript:let now = new Date();now.setUTCFullYear(now.getUTCFullYear() - 5);window.location.pathname = '/boxes/from/' + `${now.getUTCFullYear()}-${now.getUTCMonth() + 1}-${now.getUTCDate()}`;">
|
||||||
<p>Liste des boites ayant moins de 5 ans</p>
|
<p>Liste des boites ayant moins de 5 ans</p>
|
||||||
</a>
|
</a>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user