diff --git a/src/backend/src/controllers/notations.ts b/src/backend/src/controllers/notations.ts index 1bb7687cefa1f718ef53d2f4a859e8f6ca277d10..ec1e903aefe0026991c8451c215651a85b9aa7b6 100644 --- a/src/backend/src/controllers/notations.ts +++ b/src/backend/src/controllers/notations.ts @@ -87,12 +87,18 @@ exports.createEvaluation = (req: express.Request, res: express.Response, _: expr if (!validator.typeInteger(travelId, true, req, res, 'travelId')) return; if (!validator.typeInteger(evaluatedId, true, req, res, 'evaluatedId')) return; - prisma.travel.count({ where: { id: travelId } }) - .then((count) => { - if (count === 0) { + prisma.travel.findUnique({ where: { id: travelId } }) + .then((travel) => { + if (travel === null) { sendMsg(req, res, error.travel.notFound); return; } + + if (travel.status !== properties.travel.status.ended) { + sendMsg(req, res, error.travel.notEnded); + return; + } + prisma.user.count({ where: { id: evaluatedId } }) .then((count) => { if (count === 0) { diff --git a/src/backend/src/tools/translator.ts b/src/backend/src/tools/translator.ts index 4a13fa626322ad4b110d6c2918ce005b06d4bd5c..daa6d437cd0504ad2cb0cef683116681c0ff5193 100644 --- a/src/backend/src/tools/translator.ts +++ b/src/backend/src/tools/translator.ts @@ -607,6 +607,13 @@ const error = { en: 'The type of travel searched is invalid.' }, code: 400 + }), + notEnded: (req: Request) => msgForLang<TemplateMessageHTTP, MessageHTTP>(req, { + msg: { + fr: 'Ce trajet n\'est pas terminé.', + en: 'This travel is not finished.' + }, + code: 400 }) }, booking: {