mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 02:20:17 +01:00
62 lines
2.4 KiB
JavaScript
62 lines
2.4 KiB
JavaScript
//Liste des valeurs valides pour le sexe d'un utilisateur
|
|
const validSexes = ["h","f","a"];
|
|
|
|
//Classe pour représenter un avis laissé sur la borne que ce soit par l'interface web ou par un geste
|
|
export class Review {
|
|
/**
|
|
* Constructeur
|
|
* @param {Auteur} auteur L'auteur de l'avis
|
|
* @param {Number} note La note principale entre 0 et 10 compris
|
|
* @param {String} source La source de l'avis, doit être une entrée dans la table soruces de la bdd
|
|
* @param {String} commentaire Le commentaire lié a l'avis
|
|
* @param {Object} notesAutre Les notes secondaires laissées, sous la forme d'un object ou les clés sont les labels de chaque notes et les valeurs sont des notes entre 0 et 10 compris
|
|
*/
|
|
constructor(auteur, note, source, commentaire=null, notesAutre={}) {
|
|
this.auteur = auteur;
|
|
this.note = note;
|
|
this.source = source;
|
|
this.commentaire = commentaire;
|
|
this.notesAutre = notesAutre;
|
|
|
|
//On vérifie si toutes les données sont correctes
|
|
if(note < 0 || note > 10) {
|
|
throw new Error("Note principale invalide");
|
|
}
|
|
for(let nom in notesAutre) {
|
|
if(notesAutre[nom] < 0 || notesAutre[nom] > 10) {
|
|
throw new Error("Note " + notesAutre[nom] +"/10 invalide");
|
|
}
|
|
}
|
|
}
|
|
|
|
//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
|
|
export class Auteur {
|
|
/**
|
|
* Constructeur
|
|
* @param {Number} age L'age de l'auteur
|
|
* @param {String} sexe Le sexe de la personne (doit être dans l'array validSexes défini au début de ce fichier)
|
|
*/
|
|
constructor(age=null, sexe=null) {
|
|
this.age = age;
|
|
this.sexe = sexe;
|
|
|
|
//Verification des données
|
|
if(sexe != undefined && !validSexes.includes(sexe) ) {
|
|
throw new Error("Sexe invalide");
|
|
}
|
|
if(age != undefined && age <= 0) {
|
|
throw new Error("Age invalide");
|
|
}
|
|
}
|
|
} |