Rev 1502 | Rev 1873 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass CelValidationObservation extends Cel {/*** Méthode appelée avec une requête de type POST avec un identifiant d'obs.* Modifie le taxon associé à une observation avec les informations envoyées* Utilisé par:* - del/services/modules/0.1/determinations/ValiderDetermination.php::modifierObservationParDetermination()** @param int $uid[0] identifiant observation* @param pairs array tableau contenant les valeurs à modifier*/public function updateElement($uid, $pairs) {// ce service est uniquement destiné à être appelé en local,// depuis le serveur lui même// en particulier par l'application identiplante$this->controleAppelIpAutorisee();self::verifierParametresObligatoires($uid, $pairs);$id = $uid[0];$gestion_observation = new GestionObservation($this->config);$utilisateur = $pairs['ce_utilisateur'];unset($pairs['ce_utilisateur'], $pairs['id_observation']);$modification = $gestion_observation->modifierObservationPublique($utilisateur, $id, $pairs);if($modification) {header("Content-Type: text/plain; charset=utf-8");die("OK"); // attention, compatibilité avec ValiderDetermination.php de DEL !}elseif($modification === 0) {http_response_code(304); // Not Modifiedheader("Content-Type: text/plain; charset=utf-8");die("Not Modified");}else {http_response_code(500); // Internal Server Errorheader("Content-Type: text/plain; charset=utf-8");die("Impossible de modifier l'observation associée à cet identifiant " . mysql_error());}}static function verifierParametresObligatoires($uid, $params) {if(!@intval($uid[0]) || !@intval($params['id_observation'])) {header("Content-Type: text/plain; charset=utf-8");die("L'identifiant d'observation doit être un entier");}// TODO: check sur 'id_observation' en tant que param est superflu ?$params_obligatoires = array('id_observation', 'ce_utilisateur', 'nom_sel');foreach($params_obligatoires as $param) {if(@trim($params[$param])) continue;http_response_code(412); // Precondition Failedheader("Content-Type: text/plain; charset=utf-8");die(sprintf("Paramètre %s manquant (parmi %s)", $param, implode(', ', $params_obligatoires)));}}}