intégration de l'analyse des avis dans l'interface admin

This commit is contained in:
Quentin Roussel
2023-04-02 20:28:12 +02:00
parent ef2c3cdce4
commit 1fa3b92e32
13 changed files with 114 additions and 21 deletions

View File

@@ -7,11 +7,14 @@ import conn from '../database.js';
*/
const getLastReviews = (limit = 10) => {
return new Promise((resolve, reject) => {
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
JOIN sources ON sources.id = source_id
JOIN borne_auteurs ON borne_auteurs.id = id_auteur
ORDER BY borne_avis.id DESC LIMIT ?`;
let sql = `SELECT borne_avis.id,borne_avis.date as date,note_principale,commentaire,sources.nom as nom_source, borne_auteurs.sexe as sexe_auteur, borne_auteurs.age as age_auteur, borne_notes_autre.note as analyse
FROM borne_avis
JOIN sources ON sources.id = source_id
JOIN borne_auteurs ON borne_auteurs.id = id_auteur
LEFT JOIN borne_notes_autre ON borne_notes_autre.avis_id = borne_avis.id
LEFT JOIN borne_criteres ON borne_criteres.id = borne_notes_autre.critere_id
WHERE borne_criteres.nom = "analyse" OR borne_criteres.nom IS NULL
ORDER BY borne_avis.id DESC LIMIT ?;`;
conn.query(sql, [limit], (err, res) => {
if (err) {
reject(err);

View File

@@ -71,9 +71,11 @@ export const addReviewFromRequest = async (req,res) => {
const author = new Auteur(req.body.auteur_age,req.body.auteur_sexe);
const review = new Review(author, req.body.note, req.body.source, req.body.commentaire, notes_autre)
await review.analyzeComment();
let authorId = await addAuteur(author);
let sourceId = await getSourceId(review.source);
let reviewId = await addReview(review, authorId, sourceId );
console.log(review.notesAutre)
for(let label in review.notesAutre) {
await addSpecificRating(reviewId, label, review.notesAutre[label]);
}

View File

@@ -28,6 +28,16 @@ export class Review {
}
}
}
//Appelle l'API de traitement du langage pour attribuer une note au commentaire
async analyzeComment() {
let res = await fetch("http://"+process.env.ANALYZER_HOST + ":" + process.env.ANALYZER_PORT, {
method: "POST",
body: this.commentaire
})
let grade = await res.text();
this.notesAutre["analyse"] =grade;
}
}
//Classe qui représente l'auteur d'un avis