mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 10:30:17 +01:00
60 lines
2.2 KiB
JavaScript
60 lines
2.2 KiB
JavaScript
import { ReseauxAuteur, ReseauxReview } from './structures.js';
|
|
import conn from '../database.js';
|
|
import {getSourceId} from '../utils.js';
|
|
|
|
/**
|
|
* ajoute un auteur de commentaire sur les réseaux sociaux a la bdd
|
|
* @param {ReseauxAuteur} author
|
|
* @returns Une Promise qui donne l'id de l'utilisateur
|
|
*/
|
|
const addAuteur = (author, sourceId) => {
|
|
return new Promise((resolve,reject) => {
|
|
const sql = "INSERT INTO reseaux_sociaux_auteurs (nom_utilisateur, source_id, lien) VALUES (?);"
|
|
conn.query(sql, [[author.nom,sourceId, author.lien]], (err, res) => {
|
|
if(err) {
|
|
reject(new Error(err.message))
|
|
}else {
|
|
resolve(res.insertId);
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
/**
|
|
* Ajoute un avis dans la BDD
|
|
* @param {ReseauxReview} review L'avis a ajouter
|
|
* @param {Number} authorId ID de l'auteur dans la bdd
|
|
* @param {Number} sourceId ID Du réseau social source dans la bdd
|
|
* @returns une Promise qui renvoie l'ID de la review
|
|
*/
|
|
const addReview = (review, authorId, sourceId) => {
|
|
return new Promise((resolve, reject) => {
|
|
const sql = "INSERT INTO reseaux_sociaux_avis (source_id, note, commentaire, auteur_id, lien_source, date) VALUES (?);"
|
|
conn.query(sql, [[sourceId, review.note, review.commentaire, authorId, review.lien, review.date]], (err, res) => {
|
|
if(err) {
|
|
reject(new Error(err.message))
|
|
}else {
|
|
resolve(res.insertId);
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
/**
|
|
* Traite une requête POST pour ajouter un avis récupéré sur les réseaux sociaux
|
|
* @param {*} req
|
|
* @param {*} res
|
|
*/
|
|
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)
|
|
let sourceId = await getSourceId(review.source);
|
|
let authorId = await addAuteur(author, sourceId);
|
|
console.log(review.note)
|
|
await addReview(review, authorId, sourceId);
|
|
res.send("success")
|
|
}catch(err) {
|
|
res.status(500).send("Error : " + err.message)
|
|
}
|
|
} |