Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1804 → Rev 1805

/trunk/services/modules/0.1/commentaires/AjouterCommentaire.php
23,6 → 23,7
private $parametres = array();
 
private $mapping = array();
private $erreurs = array();
 
public function __construct(Conteneur $conteneur) {
$this->conteneur = $conteneur;
48,39 → 49,52
}
 
private function verifierParametres() {
$erreurs = array();
 
if (!isset($this->parametres['observation'])) {
$erreurs[] = "Impossible d'ajouter un commentaire sans identifiant d'observation (paramètre 'observation').";
$this->erreurs[] = "Impossible d'ajouter un commentaire sans identifiant d'observation (paramètre 'observation').";
}
 
if (!isset($this->parametres['auteur.id'])) {
$paramsAuteur = array('auteur.nom', 'auteur.prenom', 'auteur.courriel');
$paramsAuteurManquant = array();
foreach ($paramsAuteur as $param) {
if (!isset($this->parametres[$param])) {
$paramsAuteurManquant[] = $param;
}
}
if (!empty($paramsAuteurManquant)) {
$msgAuteurTpl = "Si le parametre 'auteur.id' n'est pas utilisé, il est nécessaire d'indiquer les ".
"nom (paramètre 'auteur.nom'), prénom (paramètre 'auteur.prenom') et courriel ".
"(paramètre 'auteur.courriel') de l'auteur.\nLes paramètres suivant sont abscents : %s\n";
$erreurs[] = sprintf($msgAuteurTpl, implode(', ', $paramsAuteurManquant));
}
$this->verifierParamsAuteurAnonyme();
}
 
if (isset($this->parametres['nom_sel']) && trim($this->parametres['nom_sel']) == '' ) {
$erreurs[] = "S'il est présent le paramètre «nom_sel» ne peut pas être vide.";
$this->verifierParamsNonVide();
 
if (isset($this->parametres['nom_sel_nn']) && !isset($this->parametres['nom_referentiel'])) {
$this->erreurs[] = "Si le paramètre «nom_sel_nn» est présent, le paramètre «nom_referentiel» doit l'être aussi.";
}
 
//TODO : Gérer le cas d'une proposition
if (!empty($erreurs)) {
$msg = "Erreur de configuration :\n".implode("\n\n", $erreurs);
if (!empty($this->erreurs)) {
$msg = "Erreur de configuration :\n".implode("\n\n", $this->erreurs);
throw new Exception($msg, RestServeur::HTTP_CODE_MAUVAISE_REQUETE);
}
}
 
private function verifierParamsAuteurAnonyme() {
$paramsAuteur = array('auteur.nom', 'auteur.prenom', 'auteur.courriel');
$paramsAuteurManquant = array();
foreach ($paramsAuteur as $param) {
if (!isset($this->parametres[$param])) {
$paramsAuteurManquant[] = $param;
}
}
 
if (!empty($paramsAuteurManquant)) {
$msgAuteurTpl = "Si le parametre 'auteur.id' n'est pas utilisé, il est nécessaire d'indiquer les ".
"nom (paramètre 'auteur.nom'), prénom (paramètre 'auteur.prenom') et courriel ".
"(paramètre 'auteur.courriel') de l'auteur.\nLes paramètres suivant sont abscents : %s\n";
$this->erreurs[] = sprintf($msgAuteurTpl, implode(', ', $paramsAuteurManquant));
}
}
 
private function verifierParamsNonVide() {
$paramsNonVide = array('nom_sel', 'nom_referentiel', 'nom_sel_nn');
foreach ($paramsNonVide as $param) {
if (isset($this->parametres[$param]) && trim($this->parametres[$param]) == '' ) {
$this->erreurs[] = "S'il est présent le paramètre «$param» ne peut pas être vide.";
}
}
}
 
private function completerParametresUtilisateur() {
$utilisateur = (isset($this->parametres['auteur.id'])) ? $this->obtenirUtilisateurAvecId() : $this->obtenirUtilisateurSansId();
if ($utilisateur !== false) {