1,17 → 1,19 |
<?php |
/** |
* Le web service observations récupère toutes les information pour une observation: |
* Web service retournant toutes les infos d'une observation donnée : |
* images, votes sur image et protocole, commentaires, votes sur commentaires, ... |
* |
* @category php 5.2 |
* @category DEL |
* @package Observations |
* @version 0.1 |
* @author Raphaël Droz <raphael@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright Copyright (c) 2013, Tela Botanica (accueil@tela-botanica.org) |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Observations |
* |
* @config-depend: "url_image" (dans configurations/config_observations.ini) |
* ex: http://www.tela-botanica.org/appli:cel-img:%09dXL.jpg |
* @config-depend: "url_image" (dans configurations/config_observations.ini) ex: http://www.tela-botanica.org/appli:cel-img:%09dXL.jpg |
*/ |
|
// http://localhost/del/services/0.1/observations/#id => une observation donnée et ses images, SANS LES propositions & nombre de commentaire |
20,6 → 22,9 |
|
class Observation { |
|
private $conteneur; |
private $gestionBdd; |
private $bdd; |
/* Map les champs MySQL vers les champs utilisés dans le JSON pour les clients pour |
chacune des différentes tables utilisées pour le chargement de résultats ci-dessous. |
- chargerObservation() (v_del_image) |
107,11 → 112,6 |
"proposition_initiale" => 1), |
); |
|
|
private $conteneur; |
private $gestionBdd; |
private $bdd; |
|
public function __construct(Conteneur $conteneur = null) { |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
$this->conteneur->chargerConfiguration('config_votes.ini'); |
169,8 → 169,7 |
if($observation['images']) { |
$votes = self::chargerVotesImage($this->bdd, $observation['images'], $protocole); |
// 3") merge/reformate les données retournées |
self::mapVotesToImages($votes, |
$observation['images']); |
self::mapVotesToImages($votes, $observation['images']); |
} |
|
// 4) charge les commentaires et les votes associés |
177,17 → 176,21 |
// modifie/créé $observation['commentaires'] |
self::chargerCommentaires($this->bdd, $observation); |
|
|
// désindexe le tableau (tel qu'apparement attendu par les applis), c'est une exception |
// corriger l'appli cliente pour utiliser les index puis supprimer cette ligne |
$observation['images'] = array_values($observation['images']); |
// autre élément de post-processing: le ce_utilisateur de l'observation non-numeric... |
if(!is_numeric($observation['auteur.id'])) $observation['auteur.id'] = "0"; |
if(!isset($observation['auteur.nom'])) $observation['auteur.nom'] = '[inconnu]'; |
if (!is_numeric($observation['auteur.id'])) { |
$observation['auteur.id'] = "0"; |
} |
if (!isset($observation['auteur.nom'])) { |
$observation['auteur.nom'] = '[inconnu]'; |
} |
|
if (isset($parametres['justthrow'])) { |
return $observation; |
} |
|
if(isset($parametres['justthrow'])) return $observation; |
|
// Mettre en forme le résultat et l'envoyer pour affichage |
$resultat = new ResultatService(); |
$resultat->corps = $observation; |
247,7 → 250,6 |
__FILE__ . ':' . __LINE__); |
|
//echo "REQUETE: $req"; exit; |
|
return $db->recupererTous($req); |
} |
|
354,4 → 356,24 |
return $obs_merged; |
} |
|
/** |
* 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 cas de succès, booléen "false" en cas d'échec |
*/ |
public function modifier($ressources, $parametres) { |
$retour = false; |
if (isset($parametres['transmission'])) { |
$idObs = $ressources[0]; |
$clientRest = $this->conteneur->getRestClient(); |
$urlTpl = $this->conteneur->getParametre('urlServiceCelObs'); |
$url = $urlTpl.$idObs; |
$retour = $clientRest->modifier($url, $parametres); |
} |
return $retour; |
} |
} |