/trunk/services/modules/0.1/Tepik.php |
---|
40,7 → 40,7 |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class Observations extends RestService { |
class Tepik extends RestService { |
private $parametres = array(); |
private $ressources = array(); |
64,17 → 64,7 |
return $this->executerService(); |
} |
public function ajouter($ressources, $requeteDonnees) { |
$this->methode = 'ajouter'; |
$this->initialiserRessourcesEtParametres($ressources, $requeteDonnees); |
return $this->executerService(); |
} |
public function modifier($ressources, $requeteDonnees) { |
$this->methode = 'modifier'; |
$this->initialiserRessourcesEtParametres($ressources, $requeteDonnees); |
return $this->executerService(); |
} |
private function executerService() { |
$reponseHttp = new ReponseHttp(); |
104,9 → 94,7 |
private function analyserRessources() { |
if ($this->methode == 'consulter') { |
$this->analyserRessoucesConsultation(); |
} else if ($this->methode == 'modifier' || $this->methode == 'ajouter') { |
$this->analyserRessoucesModification(); |
} |
} |
} |
private function analyserRessoucesConsultation() { |
186,10 → 174,6 |
$service = new $classe($this->conteneur); |
if ($this->methode == 'consulter') { |
$retour = $service->consulter($this->ressources, $this->parametres); |
} elseif ($this->methode == 'ajouter') { |
$retour = $service->ajouter($this->ressources, $this->parametres); |
} elseif ($this->methode == 'modifier') { |
$retour = $service->modifier($this->ressources, $this->parametres); |
} else { |
$message = "Le sous-service '{$this->sousServiceNom}' du service '{$this->serviceNom}' ". |
"ne possède pas de méthode '{$this->methode}' !"; |
/trunk/services/modules/0.1/tepik/ListeObservations.php |
---|
45,8 → 45,8 |
$this->sql = $this->conteneur->getSql(); |
$this->navigation = $this->conteneur->getNavigation(); |
$this->mappings['votes'] = $this->conteneur->getParametreTableau('votes.mapping'); |
$this->mappings['commentaires'] = $this->conteneur->getParametreTableau('commentaires.mapping'); |
$this->mappings['votes'] = $this->conteneur->getParametreTableau('votes.tepik'); |
$this->mappings['commentaires'] = $this->conteneur->getParametreTableau('commentaires.tepik'); |
} |
public function consulter($ressources, $parametres) { |
/trunk/services/modules/0.1/tepik/ObservationDetails.php |
---|
30,10 → 30,10 |
$this->bdd = $this->conteneur->getBdd(); |
$this->sql = $this->conteneur->getSql(); |
$this->mappings['observations'] = $this->conteneur->getParametreTableau('observations.mapping'); |
$this->mappings['observations'] = $this->conteneur->getParametreTableau('observations.tepik'); |
$this->mappings['images'] = $this->conteneur->getParametreTableau('images.mapping'); |
$this->mappings['votes'] = $this->conteneur->getParametreTableau('votes.mapping'); |
$this->mappings['commentaires'] = $this->conteneur->getParametreTableau('commentaires.mapping'); |
$this->mappings['votes'] = $this->conteneur->getParametreTableau('votes.tepik'); |
$this->mappings['commentaires'] = $this->conteneur->getParametreTableau('commentaires.tepik'); |
// les deux alias suivants sont particuliers afin d'éviter un conflit d'alias lors des jointures avec del_commentaire_vote |
$this->mappings['commentaires']['ce_utilisateur'] = '__auteur_com'; |
$this->mappings['commentaires']['date'] = '__date_com'; |
173,37 → 173,5 |
} |
} |
/** |
* Modifie une observation directement dans le CEL en faisant un appel à un web service du CEL. |
* Utilisé uniquement par les admins. |
* Permet de dépublier une observation. |
* |
* @param array $ressources tableau des informations contenues dans l'url après le nom du service |
* @param array $parametres contenu du post |
* @return mixed Chaine "OK" (en majuscule) en cas de succès, booléen "false" en cas d'échec |
*/ |
public function modifier($ressources, $parametres) { |
$gestionUtilisateurs = $this->conteneur->getUtilisateur(); |
$gestionUtilisateurs->etreUtilisateurAvecDroitAdmin(); |
$retour = false; |
if (isset($parametres['transmission'])) { |
$idObs = $ressources[0]; |
$clientRest = $this->conteneur->getRestClient(); |
$urlTpl = $this->conteneur->getParametre('urlServiceCelObs'); |
$url = $urlTpl.$idObs; |
$retourCel = $clientRest->modifier($url, $parametres); |
$retour = preg_match('/^OK$/i', $retourCel) ? 'OK' : false; |
if ($retour === false) { |
$message = "Erreur du web service CEL : ".$retourCel; |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE; |
throw new Exception($message, $code); |
} |
} else { |
$message = "Ce web service doit contenir un paramètre 'transmission'."; |
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE; |
throw new Exception($message, $code); |
} |
return $retour; |
} |
} |
/trunk/services/configurations/config.defaut.ini |
---|
160,7 → 160,23 |
nom_referentiel = nom_referentiel, |
proposition_initiale = proposition_initiale, |
proposition_retenue = proposition_retenue" |
; Mapping champs JSON / champs base de données pour Tepik: |
tepik = " |
id_commentaire = id_commentaire, |
ce_observation = observation, |
ce_proposition = proposition, |
ce_commentaire_parent = id_parent, |
ce_utilisateur = auteur.id, |
texte = texte, |
utilisateur_nom = auteur.nom, |
utilisateur_prenom = auteur.prenom, |
date = date, |
nom_sel = nom_sel, |
nom_sel_nn = nom_sel_nn, |
nom_ret_nn = nom_ret_nn, |
nom_referentiel = nom_referentiel, |
proposition_initiale = proposition_initiale, |
proposition_retenue = proposition_retenue" |
[communes] |
; Masque de filtrage possible pour la consultation : |
masques_possibles = "masque.nom" |
276,6 → 292,27 |
nom_utilisateur = auteur.nom, |
prenom_utilisateur = auteur.prenom, |
courriel_utilisateur = auteur.courriel" |
; Mapping champs JSON / champs base de données pour Tepik : |
tepik = " |
id_observation = id_observation, |
date_observation = date_observation, |
date_transmission = date_transmission, |
famille = determination.famille, |
nom_sel = determination.ns, |
nom_sel_nn = determination.nn, |
nt = determination.nt, |
nom_referentiel = determination.referentiel, |
pays = pays, |
ce_zone_geo = id_zone_geo, |
zone_geo = zone_geo, |
lieudit = lieudit, |
station = station, |
milieu = milieu, |
mots_cles_texte = mots_cles_texte, |
commentaire = commentaire, |
ce_utilisateur = auteur.id, |
nom_utilisateur = auteur.nom, |
prenom_utilisateur = auteur.prenom" |
; Texte du tag "à déterminer" |
tag_adeterminer = aDeterminer |
; Permet d'indiquer le nombre de commentaire nécessaire pour que l'observation apparaisse dans l'onglet "En discussion" d'IdentiPlante. |
325,6 → 362,22 |
descriptif = protocole.descriptif, |
tag = protocole.tag, |
mots_cles = protocole.mots_cles" |
; Mapping champs JSON / champs base de données pour Tepik : |
tepik = " |
id_vote = vote.id, |
valeur = vote, |
ce_protocole = protocole.id, |
ce_proposition = proposition.id, |
ce_image = image.id, |
ce_utilisateur = auteur.id, |
nom = auteur.nom, |
prenom = auteur.prenom, |
date = date, |
id_protocole = protocole.id, |
intitule = protocole.intitule, |
descriptif = protocole.descriptif, |
tag = protocole.tag, |
mots_cles = protocole.mots_cles" |
[protocoles] |
; Mapping champs JSON / champs base de données : |