Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2460 → Rev 2461

/trunk/jrest/services/CelObs.php
1,18 → 1,28
<?php
// declare(encoding='UTF-8');
/**
* Service permettant de récupérer toutes les informations d'une observation publique.
* Encodage en entrée : utf8
* Encodage en sortie : utf8
* Service générique de modification des observations.
*
* Cas d'utilisation :
* GET /CelObs/[id] : oû id est l'identifiant d'une observation publique
* POST /CelObs/[id] : oû id est l'identifiant d'une observation publique
* si les data du POST contienent :
* - 1 données :
* - 'transmission' : publier ou dépublier une obs
* - 3 données :
* - 'id_observation', 'nom_sel_nn', 'nom_referentiel' : permet d'accepter une proposition (DEL)
*
* @author Jean-Pascal MILCENT <jpm@clapas.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @version $Id$
* @copyright © 2013, Jean-Pascal MILCENT
* @internal Mininum PHP version : 5.2
* @category CEL
* @package Services
* @subpackage Observations
* @version 0.1
* @author Mathias CHOUET <mathias@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Aurelien PERONNET <aurelien@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
*/
class CelObs extends Cel {
private $rechercheObs = null;
34,7 → 44,7
}
}
 
function getElement($ressources){
public function getElement($ressources){
$retour = false;
$idObs = $ressources[0];
if (isset($idObs) && preg_match('/^[0-9]+$/', $idObs)) {
127,6 → 137,7
$donneesObligatoires = array('transmission');
if ($this->verifierDonneesObligatoires($donneesObligatoires)) {
$this->depublierObs($idObs);
$this->depublierImg($idObs);
}
} else if (count($this->donnees) == 3) {
$donneesObligatoires = array('id_observation', 'nom_sel_nn', 'nom_referentiel');
167,11 → 178,20
$gestionnaireObs = new GestionObservation($this->config);
$depublication = $gestionnaireObs->modifierTransmissionObservation($idObs, false);
if ($depublication === false) {
$msg = "Un problème est survenu (voir log). Les observations n'ont pas pu être dépubliées.";
$msg = "Un problème est survenu (voir log). L'observation « $idObs » n'a pas pu être dépubliée.";
$this->envoyerMessageErreur(304, $msg);
}
}
 
private function depublierImg($idObs) {
$gestionnaireImg = new GestionImage($this->config);
$depublication = $gestionnaireImg->modifierTransmissionParObs($idObs, false);
if ($depublication === false) {
$msg = "Un problème est survenu (voir log). Les images liées à l'obs « $idObs » n'ont pas pu être dépubliées.";
$this->envoyerMessageErreur(304, $msg);
}
}
 
/**
* Modifie une observation aveec les infos d'une proposition :
* Nous complétons les données de la proposition acceptée ici car:
196,9 → 216,9
 
if ($modification) {
// TODO: en modifiant bien la classe de gestion mots clés, on aurait peut être pas besoin de l'id
// utilisateur (car l'id de l'obs est déjà sans ambiguité)
// utilisateur (car l'id de l'obs est déjà sans ambiguité)
$idUtilisateur = $this->rechercheObs->obtenirIdUtilisateurPourIdObs($idObs);
 
// supression des éventuelles liaison de l'obs avec le mot clé contenu dans obsKeywordDelete
$gestionMotsClesObs = new GestionMotsClesChemin($this->config, 'obs');
$supp_liaison_mot_cle = $gestionMotsClesObs->supprimerLiaisonPourMotCleEtIdElementLie('aDeterminer', $idObs, $idUtilisateur);