Code de la machine * @name Nom de la machine * * @return id_machine Renvoie l'UID de la machine cree * Renvoie FALSE si une erreur occure * */ public static function create($code, $name){ /* [1] Verification de l'unicite de code+name =========================================================*/ $check_unique = ( self::getByCode($code) === false ); $check_unique = $check_unique && ( self::getByName($name) === false ); // Si une machine a deja ce code/nom, on renvoie une erreur if( !$check_unique ) return false; /* [2] Creation de la machine =========================================================*/ $insert_machine = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name) VALUES(DEFAULT, :code, :name)"); $insert_machine->execute(array( ':code' => $code, ':name' => $name )); /* [3] On retourne l'id_machine ou FALSE si erreur =========================================================*/ $check_machine = self::getByCode($code); // Si n'existe pas on retourne FALSE if( $check_machine === false ) return false; // Sinon, on retourne son id return $check_machine['id_machine']; } /* RENVOIE LA LISTE DE TOUTES LES MACHINES * * @return machine Liste des machines de la BDD * */ public static function getAll(){ // On ecrit la requete $request = Database::getPDO()->query("SELECT * FROM machine ORDER BY name"); // On recupere le resultat $answer = $request->fetchAll(); // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer ); } /* RENVOIE LA MACHINE D'ID DONNE * * @id Id de la machine en question * * @return machine Renvoie la machine d'id donne si existe * @return error Retourne FALSE si aucun resultat * */ public static function getById($id){ // On ecrit la requete $request = Database::getPDO()->prepare("SELECT * FROM machine WHERE id_machine = :id"); // On execute la requete $request->execute(array( ':id' => $id )); // On recupere 1 seule machine $answer = $request->fetch(); // Gestion d'erreur -> aucun resultat if( $answer === false ) return false; // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer, true ); } /* RENVOIE LA MACHINE DE CODE DONNE * * @code Code de la machine en question * * @return machine Renvoie la machine de code donne si existe * @return error Retourne FALSE si aucun resultat * */ public static function getByCode($code){ // On ecrit la requete $request = Database::getPDO()->prepare("SELECT * FROM machine WHERE code = :code"); // On execute la requete $request->execute(array( ':code' => $code )); // On recupere 1 seule machine $answer = $request->fetch(); // Gestion d'erreur -> aucun resultat if( $answer === false ) return false; // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer, true ); } /* RENVOIE LA MACHINE DE NOM DONNE * * @name Nom de la machine en question * * @return machine Renvoie la machine de nom donne si existe * @return error Retourne FALSE si aucun resultat * */ public static function getByName($name){ // On ecrit la requete $request = Database::getPDO()->prepare("SELECT * FROM machine WHERE name = :name"); // On execute la requete $request->execute(array( ':name' => $name )); // On recupere 1 seule machine $answer = $request->fetch(); // Gestion d'erreur -> aucun resultat if( $answer === false ) return false; // On retourne en supprimant les indices numeriques return Database::delNumeric( $answer, true ); } /* RENVOIE LES GROUPES AUQUEL APPARTIENT UNE MACHINE DONNEE * * @id_machine UID de la machine en question * * @return clusters Retourne la liste des groupes auquel appartient la machine * */ public static function getClusters($id_machine){ /* [1] On redige/execute la requete =========================================================*/ $get_clusters = Database::getPDO()->prepare("SELECT c.* FROM cluster as c, cluster_merge as cm WHERE cm.id_cluster = c.id_cluster AND cm.id_entity = :id_machine AND cm.class = :class ORDER BY c.id_cluster"); $get_clusters->execute(array( ':id_machine' => $id_machine, ':class' => clusterRepo::MACHINE_CLASS )); /* [2] On retourne la liste des groupes =========================================================*/ return Database::delNumeric( $get_clusters->fetchAll() ); } /* SUPPRIME UNE MACHINE DONNE * * @id_machine UID de la machine en question * * @return status Retourne si oui ou non la machine a bien ete supprime * */ public static function delete($id_machine){ /* [1] On redige/execute la requete =========================================================*/ $delete_machine = Database::getPDO()->prepare("DELETE FROM machine WHERE id_machine = :id_machine"); $delete_machine->execute(array( ':id_machine' => $id_machine )); /* [2] On verifie que la machine n'existe plus =========================================================*/ return ( self::getById($id_machine) === false ); } } ?>