mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 10:30:17 +01:00
ajout routes sur express
Liaison entre les handler et les routes
This commit is contained in:
@@ -3,4 +3,29 @@
|
|||||||
1. Installer node js : https://nodejs.org/en/download/
|
1. Installer node js : https://nodejs.org/en/download/
|
||||||
2. Ouvrir un terminal et aller dans ce dossier (code/server) et tapper `npm install` pour installer les pacakges nécessaires
|
2. Ouvrir un terminal et aller dans ce dossier (code/server) et tapper `npm install` pour installer les pacakges nécessaires
|
||||||
3. copier le fichier `.env_template` et le nommer `.env` et remplir les variables (cela est fait pour le pas mettre les mots de passes sur le gitlab, faites attention de ne jamais commit le fichier .env !!)
|
3. copier le fichier `.env_template` et le nommer `.env` et remplir les variables (cela est fait pour le pas mettre les mots de passes sur le gitlab, faites attention de ne jamais commit le fichier .env !!)
|
||||||
4. pour lancer le serveur faire `node index.js`
|
4. pour lancer le serveur faire `node index.js`
|
||||||
|
|
||||||
|
# Utilisation
|
||||||
|
|
||||||
|
## Routes GET :
|
||||||
|
- `/get_last_reviews?limit=LIM` : renvoie les LIM derniers avis sur la borne
|
||||||
|
- `/get_review?id=ID` : renvoie les infos sur l'avis d'in ID
|
||||||
|
- `/get_criteres` : renvoie les criteres de notations valide pour les notes autres
|
||||||
|
- `/notes_autres?critere=CRIT&limit=LIM` : renvoie les LIM dernières notes sur le critère CRIT
|
||||||
|
- `/notes_autres?id=ID&limit=LIM` : renvoie toutes les notes spécifiques liées à l'avis ID
|
||||||
|
|
||||||
|
## Routes POST
|
||||||
|
- `/add_review` : Ajoute une review et un auteur, paramètres POST :
|
||||||
|
* [OBLIGATOIRE] `note` : note principale de la review entre 0 et 10 compris
|
||||||
|
* [OBLIGATOIRE] `source` : nom de la source de l'avis, doit être `borne` ou `website` pour resp la borne et le site
|
||||||
|
* `auteur_age` : age de l'auteur
|
||||||
|
* `auteur_sexe` : sexe de l'auteur (valeurs valide 'f', 'h', 'a')
|
||||||
|
* `commentaire` : Commentaire laissé avec l'avis
|
||||||
|
* `notes autres` : sous la forme
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"critere1": 8,
|
||||||
|
"critere2": 2,
|
||||||
|
"critere3": 0
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import conn from '../database.js';
|
|||||||
*/
|
*/
|
||||||
const getLastReviews = (limit=10) => {
|
const getLastReviews = (limit=10) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let sql = `SELECT id,date,note_principale,commentaire,sources.nom as nom_source, borne_auteurs.sexe as sexe_auteur, borne_auteurs.age as age_auteur
|
let sql = `SELECT borne_avis.id,date,note_principale,commentaire,sources.nom as nom_source, borne_auteurs.sexe as sexe_auteur, borne_auteurs.age as age_auteur
|
||||||
FROM borne_avis
|
FROM borne_avis
|
||||||
JOIN sources ON sources.id = source_id
|
JOIN sources ON sources.id = source_id
|
||||||
JOIN borne_auteurs ON borne_auteurs.id = id_auteur
|
JOIN borne_auteurs ON borne_auteurs.id = id_auteur
|
||||||
@@ -134,11 +134,72 @@ const getStats = (interval, limit=10) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/*^
|
/*
|
||||||
* TODO: FOnction gerer requêtes get
|
|
||||||
* /get_last_review?limit=LIM
|
* /get_last_review?limit=LIM
|
||||||
* /get_review?id=ID
|
* /get_review?id=ID
|
||||||
* /get_criteres
|
* /get_criteres
|
||||||
* /notes_autres?critere=CRIT&limit=LIM
|
* /notes_autres?critere=CRIT&limit=LIM
|
||||||
* /notes_autres?id=ID&limit=LIM
|
* /notes_autres?id=ID&limit=LIM
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
export const handleGetLastReviews = (req, res) => {
|
||||||
|
getLastReviews(req.query.limit)
|
||||||
|
.then((reviews) => {
|
||||||
|
res.send(reviews);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
res.status(500).send("Error: " + err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export const handleGetReview = (req, res) => {
|
||||||
|
getReviewFromId(req.query.id)
|
||||||
|
.then((review) => {
|
||||||
|
res.send(review);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
res.status(500).send("Error: " + err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export const handleGetCriteres = (req, res) => {
|
||||||
|
getCriteres()
|
||||||
|
.then((criteres) => {
|
||||||
|
res.send(criteres);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
res.status(500).send("Error: " + err.message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
}else if(req.query.id) {
|
||||||
|
getNotesAutresFromReview(req.query.id)
|
||||||
|
.then((notes) => {
|
||||||
|
res.send(notes);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
res.status(500).send("Error: " + err.message);
|
||||||
|
});
|
||||||
|
}else {
|
||||||
|
res.status(500).send("Error: no critere or id specified");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import bodyParser from 'body-parser';
|
|||||||
import { addReviewFromRequest } from './borne/post_handler.js';
|
import { addReviewFromRequest } from './borne/post_handler.js';
|
||||||
import { addSocialReviewFromRequest } from './reseaux_sociaux/post_handler.js';
|
import { addSocialReviewFromRequest } from './reseaux_sociaux/post_handler.js';
|
||||||
import { startCronJobs } from './stats/update_stats.js';
|
import { startCronJobs } from './stats/update_stats.js';
|
||||||
|
import * as borneHandler from './borne/get_handler.js';
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
@@ -12,6 +13,13 @@ dotenv.config()
|
|||||||
app.post('/add_review', (req,res) => addReviewFromRequest(req,res));
|
app.post('/add_review', (req,res) => addReviewFromRequest(req,res));
|
||||||
app.post('/add_social_review', (req,res) => addSocialReviewFromRequest(req,res));
|
app.post('/add_social_review', (req,res) => addSocialReviewFromRequest(req,res));
|
||||||
|
|
||||||
|
app.get('/get_last_reviews', borneHandler.handleGetLastReviews);
|
||||||
|
app.get('/get_review', borneHandler.handleGetReview);
|
||||||
|
app.get('/get_criteres', borneHandler.handleGetCriteres);
|
||||||
|
app.get('/notes_autres', borneHandler.handleGetNotesAutres);
|
||||||
|
app.get('/get_stats', borneHandler.handleGetStats);
|
||||||
|
|
||||||
|
|
||||||
startCronJobs();
|
startCronJobs();
|
||||||
|
|
||||||
app.listen(process.env.PORT, () => {
|
app.listen(process.env.PORT, () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user