Rev 45 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
// declare(encoding='UTF-8');
/**
* DAO des traitements à réaliser sur les référentiels.
*
* @package Referentiel
* @category Php 5.2
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @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;
}
}
?>