/trunk/services/modules/0.1/observations/ListeObservations.php |
---|
28,6 → 28,7 |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
$this->conteneur->chargerConfiguration('config_departements.ini'); |
$this->conteneur->chargerConfiguration('config_observations.ini'); |
$this->conteneur->chargerConfiguration('config_votes.ini'); |
$this->navigation = $conteneur->getNavigation(); |
$this->masque = $conteneur->getMasque(); |
$this->gestionBdd = $conteneur->getGestionBdd(); |
70,6 → 71,7 |
private function configurer() { |
$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque'); |
$this->mappingObservation = $this->conteneur->getParametre('mapping_observation'); |
$this->mappingVotes = $this->conteneur->getParametre('mapping_votes'); |
} |
/** |
313,7 → 315,7 |
$resultatsVotes = $this->bdd->recupererTous($requeteVotes); |
foreach ($resultatsVotes as $vote) { |
$propositions[$vote['ce_proposition']]['votes'][] = $vote; |
$propositions[$vote['ce_proposition']]['votes'][] = $this->formaterVotes($vote); |
} |
return $propositions; |
} |
385,6 → 387,18 |
return $urlImage; |
} |
/** |
* Formater un vote en fonction du fichier de configuration config_votes.ini |
* @param $votes array() |
* */ |
private function formaterVotes($vote) { |
$retour = array(); |
foreach ($vote as $param=>$valeur) { |
$retour[$vote['id_vote']][$this->mappingVotes[$param]] = $valeur; |
} |
return $retour; |
} |
private function proteger($valeur) { |
if (is_array($valeur)) { |
return $this->bdd->protegerTableau($valeur); |
/trunk/services/modules/0.1/observations/VoteObservation.php |
---|
New file |
0,0 → 1,54 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Le web service image récupère toutes les données de la table del_obs_images |
* pour retourner une liste d'images associée à une observation |
* |
* @category php 5.2 |
* @package del |
* @subpackage images |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright Copyright (c) 2012, 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 |
* @version $Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $ |
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images |
*/ |
class VoteObservation { |
private $conteneur; |
private $gestionBdd; |
private $bdd; |
public function __construct(Conteneur $conteneur = null) { |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
$this->gestionBdd = $conteneur->getGestionBdd(); |
$this->bdd = $this->gestionBdd->getBdd(); |
} |
/** |
* Méthode principale de la classe. |
* Lance la récupération des images dans la base et les place dans un objet ResultatService |
* pour l'afficher. |
* @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2) |
* @param array $parametres les paramètres situés après le ? dans l'url |
* */ |
public function consulter($ressources, $parametres) { |
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE); |
RestServeur::ajouterMessage("Le service 'images/#id/#id_proposition/vote' n'autorise pas la consultation."); |
} |
public function ajouter($ressources, $parametres) { |
$insertion = 'INSERT INTO `del`.`del_commentaire_vote` '. |
'(`ce_proposition` , `ce_utilisateur` , `valeur` , `date`) '. |
'VALUES ('.$ressources[1].','.$parametres['utilisateur'].','. |
$parametres['valeur'].', NOW());'; |
$resultatsVotes = $this->bdd->requeter($insertion); |
if ($resultatsVotes == false) { |
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_MAUVAISE_REQUETE); |
} else { |
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_CREATION_OK); |
} |
} |
} |
?> |
/trunk/services/modules/0.1/observations/Observation.php |
---|
25,6 → 25,7 |
public function __construct(Conteneur $conteneur = null) { |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
$this->conteneur->chargerConfiguration('config_votes.ini'); |
$this->gestionBdd = $conteneur->getGestionBdd(); |
$this->bdd = $this->gestionBdd->getBdd(); |
} |
63,6 → 64,7 |
* */ |
private function configurer($ressources) { |
$this->mappingObservation = $this->conteneur->getParametre('mapping_observation'); |
$this->mappingVotes = $this->conteneur->getParametre('mapping_votes'); |
if (empty($ressources) || sizeof($ressources) > 1 ) { |
$e = 'Le service observation accepete 1 et 1 seule ressource'; |
throw new Exception($e, RestServeur::HTTP_CODE_ERREUR); |
168,11 → 170,25 |
$requeteCommentaires = 'SELECT * FROM '.$this->gestionBdd->formaterTable('del_commentaire', 'dc'). |
'WHERE ce_observation = '.$observation['id_observation']; |
$commentaires = $this->bdd->recupererTous($requeteCommentaires); |
foreach ($commentaires as $id=>$commentaire) { |
if ($commentaire['nom_sel'] != null) { |
$commentaire['votes'] = $this->chargerVotes($commentaire['id_commentaire']); |
} |
$commentaires[$id] = $commentaire; |
} |
$observation['commentaires'] = $commentaires; |
return $observation; |
} |
private function chargerVotes($id_commentaire) { |
$requeteVotes = 'SELECT * FROM '. |
$this->gestionBdd->formaterTable('del_commentaire_vote'). |
'WHERE ce_proposition = '.$this->proteger($id_commentaire); |
$resultatsVotes = $this->bdd->recupererTous($requeteVotes); |
$votes = $this->formaterVotes($resultatsVotes); |
return $votes; |
} |
/*------------------------------------------------------------------------------- |
233,5 → 249,19 |
return $this->bdd->proteger($valeur); |
} |
} |
/** |
* Formater un vote en fonction du fichier de configuration config_votes.ini |
* @param $votes array() |
* */ |
private function formaterVotes($votes) { |
$retour = array(); |
foreach ($votes as $vote) { |
foreach ($vote as $p=>$valeur) { |
$retour[$vote['id_vote']][$this->mappingVotes[$p]] = $valeur; |
} |
} |
return $retour; |
} |
} |
?> |
/trunk/services/modules/0.1/Observations.php |
---|
25,6 → 25,7 |
private $parametres = array(); |
private $ressources = array(); |
private $methode = null; |
private $projetNom = array(); |
private $serviceNom = array(); |
private $cheminCourant = null; |
39,7 → 40,7 |
} |
public function consulter($ressources, $parametres) { |
$this->methode = 'consulter'; |
$resultat = ''; |
$reponseHttp = new ReponseHttp(); |
try { |
54,6 → 55,18 |
$corps = $reponseHttp->getCorps(); |
return $corps; |
} |
public function ajouter($ressources, $requeteDonnees) { |
$this->methode = 'ajouter'; |
$resultat = ''; |
try { |
$this->initialiserRessourcesEtParametres($ressources, $requeteDonnees); |
$this->conteneur = new Conteneur($this->parametres); |
$resultat = $this->traiterRessources(); |
} catch (Exception $e) { |
$reponseHttp->ajouterErreur($e); |
} |
} |
private function initialiserRessourcesEtParametres($ressources, $parametres) { |
$this->ressources = $ressources; |
69,9 → 82,9 |
return $retour; |
} |
private function avoirRessourceIdentifiant() { |
private function avoirRessourceIdentifiant($num) { |
$presenceId = false; |
if (is_numeric($this->ressources[0])) { |
if (is_numeric($this->ressources[$num])) { |
$presenceId = true; |
} else { |
$message = "Le service demandé '$service' nécessite d'avoir un identifiant d'image valide"; |
110,7 → 123,7 |
* */ |
$presenceRessourceService = false; |
if (isset($this->ressources[0])) { |
if ($this->avoirRessourceIdentifiant()) { |
if ($this->avoirRessourceIdentifiant(0)) { |
if (sizeof($this->ressources) == 1) { |
$presenceRessourceService = true; |
$this->serviceNom = 'observation'; |
130,15 → 143,17 |
private function avoirRessourceSousService() { |
$presenceRessourceService = false; |
$servicesDispo = Outils::recupererTableauConfig('servicesDispo'); |
$service = $this->ressources[1]; |
if (in_array($service, $servicesDispo)) { |
$presenceRessourceService = true; |
$this->serviceNom = 'votes-image'; |
} else { |
$message = "Le service demandé '$service' n'est pas disponible pour le projet {$this->projetNom} !\n". |
"Les services disponibles sont : ".implode(', ', $servicesDispo); |
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE; |
throw new Exception($message, $code); |
if ($this->avoirRessourceIdentifiant(1)) { |
$service = $this->ressources[2]; |
if (in_array($service, $servicesDispo)) { |
$presenceRessourceService = true; |
$this->serviceNom = 'vote-observation'; |
} else { |
$message = "Le service demandé '$service' n'est pas disponible pour le projet {$this->projetNom} !\n". |
"Les services disponibles sont : ".implode(', ', $servicesDispo); |
$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE; |
throw new Exception($message, $code); |
} |
} |
return $presenceRessourceService; |
} |
157,7 → 172,11 |
$this->conteneur->chargerConfiguration('config_'.$this->projetNom.'.ini'); |
require_once $chemin; |
$service = new $classe($this->conteneur); |
$retour = $service->consulter($this->ressources, $this->parametres); |
if ($this->methode == 'consulter') { |
$retour = $service->consulter($this->ressources, $this->parametres); |
} elseif ($this->methode == 'ajouter') { |
$retour = $service->ajouter($this->ressources, $this->parametres); |
} |
} |
} |