* @copyright 2010 Tela-Botanica * @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$ * */ class TraitementDao extends Dao { const SERVICE = 'Traitement'; private $url = null; public function __construct() { parent::__construct(); $this->url = $this->url_jrest.self::SERVICE; } /** * Retourne les infos d'un traitement enregistré dans la bdd pour un id donné. * * @param integer l'id du traitement. * @return array le tableau d'infos ou false en cas d'échec. */ public function getInfos($id_traitement) { $url = $this->url."/Info/$id_traitement"; $json = $this->envoyerRequeteConsultation($url); $infos = json_decode($json, true); return $infos; } /** * Retourne l'ensemble des traitements en attente. * * @param string le code du projet de référentiel. * @param string le nom du script à lancer en minuscule. * @return mixed un tableau contenant les informations sur les traitements en attente ou false en cas d'échec. */ public function getTraitementsEnAttente($code_projet, $script) { $url = $this->url."/EnAttente/$code_projet/$script"; $json = $this->envoyerRequeteConsultation($url); $traitements = json_decode($json, true); return $traitements; } /** * Retourne l'ensemble des traitements en cours. * * @param string le code du projet de référentiel. * @param string le nom du script à lancer en minuscule. * @return mixed un tableau contenant les informations sur les traitements en cours ou false en cas d'échec. */ public function getTraitementsEnCours($code_projet, $script) { $url = $this->url."/EnCours/$code_projet/$script"; $json = $this->envoyerRequeteConsultation($url); $traitements = json_decode($json, true); return $traitements; } /** * Retourne les ids de l'ensemble des traitements obsolètes. * * @param string le code du projet de référentiel. * @param string le nom du script à lancer en minuscule. * @return mixed un tableau contenant les ids des traitements obsolètes ou false en cas d'échec. */ public function getTraitementsObsoletes($code_projet, $script) { $url = $this->url."/Obsolete/$code_projet/$script"; $json = $this->envoyerRequeteConsultation($url); $traitements = json_decode($json, true); return $traitements; } /** * Retourne le dernier traitement demandé et non traité pour un projet donné. * * @param string le code du projet de référentiel. * @param string le nom du script à lancer en minuscule. * @return mixed un tableau contenant les informations sur le dernier traitement demandé et non traité ou false en cas d'échec. */ public function getDernierTraitement($code_projet, $script) { $url = $this->url."/DerniereDemande/$code_projet/$script"; $json = $this->envoyerRequeteConsultation($url); $traitements = json_decode($json, true); return $traitements; } /** * Retourne l'ensemble des traitements terminés. * * @param string le code du projet de référentiel. * @param string le nom du script à lancer en minuscule. * @return mixed un tableau contenant les informations sur les traitements terminés ou false en cas d'échec. */ public function getTraitementsTermines($code_projet, $script) { $url = $this->url."/Termines/$code_projet/$script"; $json = $this->envoyerRequeteConsultation($url); $traitements = json_decode($json, true); return $traitements; } /** * Ajoute une demande de traitement pour une référentiel donné. * * @param string le code du référentiel. * @param string le nom du script à lancer en minuscule. * @return mixed l'id du traitement ou false en cas d'échec. */ public function ajouterTraitement($code_projet, $script) { return $this->ajouterTraitementParametre($code_projet, null, $script); } /** * Ajoute une demande de traitement pour une référentiel donné * en passant des paramêtres au script. * * @param string le code du référentiel. * @param string les données serialisées. * @param string le nom du script à lancer en minuscule. * @return mixed l'id du traitement ou false en cas d'échec. */ public function ajouterTraitementParametre($code_projet, $parametres, $script) { // Préparation des données à passer par POST $donnees['referentiel_code'] = $code_projet; $donnees['script'] = $script; $donnees['script_parametres'] = (isset($parametres)) ? $parametres : null; // Envoie des données et récupération du retour $json = $this->envoyerRequeteAjout($this->url, $donnees); $id = json_decode($json, true); return $id; } /** * Modifie un traitement pour indiquer qu'il est débuté. * * @param integer l'id du traitement * @return boolean true en cas de succés sinon false. */ public function debuterTraitement($id_traitement) { $url = $this->url."/$id_traitement"; $donnees['action'] = 'Debuter'; // Envoie des données et récupération du retour $json = $this->envoyerRequeteModif($url, $donnees); $ok = json_decode($json, true); return $ok; } /** * Modifie un traitement pour indiquer qu'il est terminé. * * @param integer l'id du traitement * @return boolean true en cas de succés sinon false. */ public function terminerTraitement($id_traitement) { $url = $this->url."/$id_traitement"; $donnees['action'] = 'Terminer'; // Envoie des données et récupération du retour $json = $this->envoyerRequeteModif($url, $donnees); $ok = json_decode($json, true); return $ok; } /** * Supprime des traitments en fonction de leur id. * * @param array le tableau des id des traitements à supprimer * @return boolean true en cas de succès ou false en cas d'échec. */ public function supprimer(Array $ids) { // Préparation de l'url $url = $this->url.'/'.implode(',', $ids); // Envoie des données et récupération du retour $json = $this->envoyerRequeteSuppression($url); $ok = json_decode($json, true); return $ok; } } ?>