SMMP/manager/module/machineDefault.php

165 lines
4.5 KiB
PHP
Executable File

<?php
namespace manager\module;
use \manager\Database;
use \manager\sessionManager;
use \manager\ManagerError;
use \manager\Repo;
use \manager\repo\cluster as clusterRepo;
class machineDefault{
/* RENVOIE LA LISTE EXHAUSTIVE DES MACHINES
*
* @return machines<Array> Liste des machines
*
*/
public static function getAll(){
// On recupere les donnees
$machines = new Repo('machine/getAll');
return array(
'machines' => $machines->answer()
);
}
/* CREATION D'UNE NOUVELLE MACHINE DANS LA BDD
*
* @code<String> Code RFID de la machine
* @name<String> Identifiant de la machine
*
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
*
*/
public static function create($code=null, $name=null){
/* [1] Normalisation + verification des donnees
=========================================================*/
$correct_param = Database::check('machine.code', $code);
$correct_param = $correct_param && Database::check('machine.name', $name);
// Si les parametres ne sont pas corrects, on retourne une erreur
if( !$correct_param )
return array('ModuleError' => ManagerError::ParamError);
/* [2] Creation de la machine
=========================================================*/
$create_machine = new Repo('machine/create', array($code, $name) );
$id_machine = $create_machine->answer();
// Si une erreur est retournee, on retourne une erreur
if( $id_machine === false )
return array('ModuleError' => ManagerError::ModuleError);
/* [3] Creation du groupe de meme nom que la machine
=========================================================*/
$create_group = new Repo('cluster/create', array($name) );
$id_group = $create_group->answer();
// Si une erreur est retournee, on retourne une erreur
if( $id_group === false )
return array('ModuleError' => ManagerError::ModuleError);
/* [4] Association au groupe
=========================================================*/
$assoc_goup = new Repo('cluster/link', array($id_group, $id_machine, clusterRepo::MACHINE_CLASS));
$id_assoc = $assoc_goup->answer();
// Si une erreur est retournee, on retourne une erreur
if( $id_assoc === false )
return array('ModuleError' => ManagerError::ModuleError);
/* [5] Gestion du retour
=========================================================*/
return array(
'ModuleError' => ManagerError::Success,
'id_machine' => $id_machine,
'id_cluster' => $id_group
);
}
/* AJOUTE UNE MACHINE DONNEE A UN GROUPE DONNE
*
* @id_cluster<int> UID du groupe
* @id_machine<int> UID de la machine
*
* @return association<int> Renvoie l'UID de l'association cree
* Renvoie FALSE si une erreur occure
*
*/
public static function link($id_cluster, $id_machine){
/* [1] Normalisation + verification des donnees
=========================================================*/
$correct_param = Database::check('auto_increment_id', $id_cluster);
$correct_param = $correct_param && Database::check('auto_increment_id', $id_machine);
// Si les parametres ne sont pas corrects, on retourne une erreur
if( !$correct_param )
return array('ModuleError' => ManagerError::ParamError);
/* [2] Creation de l'association
=========================================================*/
$link_machine = new Repo('cluster/link', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS));
return $link_machine;
}
/* RETIRE UNE MACHINE DONNEE A UN GROUPE DONNE
*
* @id_cluster<int> UID du groupe
* @id_machine<int> UID de la machine
*
* @return association<int> Renvoie l'UID de l'association cree
* Renvoie FALSE si une erreur occure
*
*/
public static function unlink($id_cluster, $id_machine){
/* [1] Normalisation + verification des donnees
=========================================================*/
$correct_param = Database::check('auto_increment_id', $id_cluster);
$correct_param = $correct_param && Database::check('auto_increment_id', $id_machine);
// Si les parametres ne sont pas corrects, on retourne une erreur
if( !$correct_param )
return array('ModuleError' => ManagerError::ParamError);
/* [2] Suppression de l'association
=========================================================*/
$link_machine = new Repo('cluster/unlink', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS));
return $link_machine;
}
}
?>