mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 10:30:17 +01:00
Syncronisation de la page d'accueil avec l'api
This commit is contained in:
@@ -143,13 +143,23 @@ const getStats = (interval, limit = 10) => {
|
||||
Ces fonction sont des handlers pour les routes express, elles sont appelées par les routes et renvoient les données au format JSON
|
||||
*/
|
||||
export const handleGetLastReviews = (req, res) => {
|
||||
getLastReviews(req.query.limit)
|
||||
.then((reviews) => {
|
||||
res.send(reviews);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
if (req.query.limit) {
|
||||
getLastReviews(Number(req.query.limit))
|
||||
.then((reviews) => {
|
||||
res.send(reviews);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
} else {
|
||||
getLastReviews()
|
||||
.then((reviews) => {
|
||||
res.send(reviews);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export const handleGetReview = (req, res) => {
|
||||
@@ -176,13 +186,23 @@ export const handleGetCriteres = (req, res) => {
|
||||
|
||||
export const handleGetNotesAutres = (req, res) => {
|
||||
if (req.query.critere) {
|
||||
getNotesAutresFromCritere(req.query.critere, req.query.limit)
|
||||
.then((notes) => {
|
||||
res.send(notes);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
if (req.query.limit) {
|
||||
getNotesAutresFromCritere(req.query.critere, Number(req.query.limit))
|
||||
.then((notes) => {
|
||||
res.send(notes);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
} else {
|
||||
getNotesAutresFromCritere(req.query.critere)
|
||||
.then((notes) => {
|
||||
res.send(notes);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
}
|
||||
} else if (req.query.id) {
|
||||
getNotesAutresFromReview(req.query.id)
|
||||
.then((notes) => {
|
||||
@@ -197,11 +217,21 @@ export const handleGetNotesAutres = (req, res) => {
|
||||
}
|
||||
|
||||
export const handleGetStats = (req, res) => {
|
||||
getStats(req.query.interval, req.query.limit)
|
||||
.then((stats) => {
|
||||
res.send(stats);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
if (req.query.limit) {
|
||||
getStats(req.query.interval, Number(req.query.limit))
|
||||
.then((stats) => {
|
||||
res.send(stats);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
} else {
|
||||
getStats(req.query.interval)
|
||||
.then((stats) => {
|
||||
res.send(stats);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(500).send("Error: " + err.message);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ import express from 'express';
|
||||
import bodyParser from 'body-parser';
|
||||
import { addReviewFromRequest } from './borne/post_handler.js';
|
||||
import { addSocialReviewFromRequest } from './reseaux_sociaux/post_handler.js';
|
||||
import { startCronJobs } from './stats/update_stats.js';
|
||||
import { startCronJobs, manualUpdateStats } from './stats/update_stats.js';
|
||||
import * as borneHandler from './borne/get_handler.js';
|
||||
import cors from "cors";
|
||||
|
||||
@@ -20,6 +20,10 @@ app.get('/borne/get_criteres', borneHandler.handleGetCriteres);
|
||||
app.get('/borne/notes_autres', borneHandler.handleGetNotesAutres);
|
||||
app.get('/borne/get_stats', borneHandler.handleGetStats);
|
||||
|
||||
app.get('/update_stats', (req, res) => {
|
||||
manualUpdateStats();
|
||||
res.send("OK");
|
||||
})
|
||||
|
||||
startCronJobs();
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@ SET @date_limite = DATE_ADD(NOW(), INTERVAL -DAY_COUNT_DELAY DAY);
|
||||
On récupère les notes notes moyennes sur la periode, en séparant global, borne et site
|
||||
*/
|
||||
|
||||
SELECT @nb_avis:=COUNT(*)
|
||||
FROM borne_avis
|
||||
WHERE borne_avis.date > @date_limite;
|
||||
|
||||
SELECT @moyenne_globale:=AVG(note_principale)
|
||||
FROM borne_avis
|
||||
WHERE borne_avis.date > @date_limite;
|
||||
@@ -38,7 +42,7 @@ SELECT @stats_a:=COUNT(*) FROM borne_avis
|
||||
|
||||
SET @dist_sexe = CONCAT(@stats_f,",",@stats_h,",",@stats_a);
|
||||
|
||||
INSERT INTO STATS_GENERAL_TABLE_NAME (moyenne_globale, moyenne_borne, moyenne_site, dist_sexe) VALUES (@moyenne_globale, @moyenne_borne, @moyenne_site, @dist_sexe);
|
||||
INSERT INTO STATS_GENERAL_TABLE_NAME (moyenne_globale, nb_avis, moyenne_borne, moyenne_site, dist_sexe) VALUES (@moyenne_globale, @nb_avis, @moyenne_borne, @moyenne_site, @dist_sexe);
|
||||
|
||||
INSERT INTO STATS_AUTRES_TABLE_NAME (critere_id, note)
|
||||
SELECT critere_id, AVG(note) as moyenne FROM borne_notes_autre
|
||||
|
||||
@@ -66,4 +66,11 @@ export const startCronJobs = () => {
|
||||
true
|
||||
)
|
||||
console.log("All cronjobs initiated")
|
||||
}
|
||||
|
||||
export function manualUpdateStats() {
|
||||
computeStats(1, "stats_general_jour", "stats_autres_jour");
|
||||
computeStats(7, "stats_general_semaine", "stats_autres_jour");
|
||||
computeStats(30, "stats_general_mois", "stats_autres_mois");
|
||||
computeStats(365, "stats_general_annee", "stats_autres_annee");
|
||||
}
|
||||
Reference in New Issue
Block a user