gestion plusieurs commentaires par 1 utilisateur

Si un utilisateur post plusieurs commentaires l'utilisateur est ajouté qu'une fois a la bdd
This commit is contained in:
2023-01-03 22:28:57 +01:00
parent e94bf213c2
commit 66d1aaf027
4 changed files with 32 additions and 10 deletions

View File

@@ -2,6 +2,29 @@ import { ReseauxAuteur, ReseauxReview } from './structures.js';
import conn from '../database.js';
import {getSourceId} from '../utils.js';
/**Récupérer l'id d'un auteur particulier dans la base de donnée s'il existe
* @param {ReseauxAuteur} author L'auteur dont on veut l'id*
* @returns Une Promise qui donne l'id de l'utilisateur ou null si il n'existe pas
*/
const getAuteurId = (author) => {
return new Promise(async (resolve,reject) => {
const sql = "SELECT id FROM reseaux_sociaux_auteurs WHERE nom_utilisateur = ? AND source_id = ? AND lien = ?;"
let sourceId = await getSourceId(author.source);
let query = conn.query(sql, [author.nom, sourceId, author.lien], (err, res) => {
if(err) {
reject(new Error(err.message))
}else {
if(res.length > 0) {
resolve(res[0].id);
}else {
resolve(null);
}
}
})
})
}
/**
* ajoute un auteur de commentaire sur les réseaux sociaux a la bdd
* @param {ReseauxAuteur} author
@@ -48,10 +71,12 @@ const addReview = (review, authorId, sourceId) => {
export const addSocialReviewFromRequest = async (req,res) => {
try {
const author = new ReseauxAuteur(req.body.auteur_nom, req.body.source, req.body.auteur_lien);
const review = new ReseauxReview(author,req.body.note, req.body.source, req.body.date, req.body.commentaire, req.body.lien)
const review = new ReseauxReview(author, req.body.source, req.body.date, req.body.note, req.body.commentaire, req.body.lien)
let sourceId = await getSourceId(review.source);
let authorId = await addAuteur(author, sourceId);
console.log(review.note)
let authorId = await getAuteurId(author);
if(authorId == null) {
authorId = await addAuteur(author, sourceId);
}
await addReview(review, authorId, sourceId);
res.send("success")
}catch(err) {