changement du stockage des notes autres

This commit is contained in:
2022-12-25 22:50:19 +01:00
parent 0e85ce1156
commit ba88f758b5
3 changed files with 90 additions and 14 deletions

View File

@@ -2,6 +2,8 @@ import { Auteur, Review } from './structures.js';
import conn from '../database.js';
import {getSourceId} from '../utils.js';
//TODO: Changer la manière dont les notes autres son stoquées, avoir une table qui a la liste des notes, une table avec les enregistrements
/**
* Ajoute un nouvel auteur de commentaire a la BDD, auteur doit être une instance de Auteur
* @param {Auteur} author L'auteur a ajouter
@@ -20,6 +22,21 @@ const addAuteur = (author) => {
})
}
//Ajoute une note sur un critère spécifique
const addSpecificRating = (reviewId, label, value) => {
return new Promise((resolve, reject) => {
const sql = "INSERT INTO borne_notes_autre(critere_id, avis_id, valeur) VALUES ((SELECT id FROM borne_criteres WHERE borne_criteres.nom = ?), ?, ?)"
console.log(sql);
conn.query(sql, [label,reviewId, value], (err, res) => {
if(err) {
reject(err);
}else {
resolve(res.insertId);
}
})
})
}
//Ajoute un avis a la base de donnée
/**
@@ -31,8 +48,8 @@ const addAuteur = (author) => {
*/
const addReview = (review, authorId, sourceId) => {
return new Promise((resolve, reject) => {
const sql = "INSERT INTO borne_auteurs (id_auteur, note_principale, notes_autre, commentaire, source_id) VALUES (?);"
conn.query(sql, [[authorId, review.note, JSON.stringify(review.notesAutre), review.commentaire, sourceId]], (err, res) => {
const sql = "INSERT INTO borne_avis (id_auteur, note_principale, commentaire, source_id) VALUES (?);"
conn.query(sql, [[authorId, review.note, review.commentaire, sourceId]], (err, res) => {
if(err) {
reject(err)
}else {
@@ -59,7 +76,10 @@ export const addReviewFromRequest = async (req,res) => {
const review = new Review(author, req.body.note, req.body.source, req.body.commentaire, notes_autre)
let authorId = await addAuteur(author);
let sourceId = await getSourceId(review.source);
await addReview(review, authorId, sourceId );
let reviewId = await addReview(review, authorId, sourceId );
for(let label in review.notesAutre) {
await addSpecificRating(reviewId, label, review.notesAutre[label]);
}
res.send("success")
}catch(err) {
res.status(500).send("Error : " + err.message)