18 |
* traitements qui ont vocation à être déclenché de manière automatique ou par |
* traitements qui ont vocation à être déclenché de manière automatique ou par |
19 |
* une application externe. Par exemple, un cron permet chaque soir d'exécuter |
* une application externe. Par exemple, un cron permet chaque soir d'exécuter |
20 |
* la synchronisation des utilisateurs de l'application avec l'annuaire LDAP. |
* la synchronisation des utilisateurs de l'application avec l'annuaire LDAP. |
|
* |
|
|
* @todo XXX Finir la synchronisation du module 'user' et ajouter le support |
|
|
* pour la synchronisation des modules additionnels |
|
21 |
*/ |
*/ |
22 |
class maintenance extends Services { |
class maintenance extends Services { |
23 |
|
|
24 |
/** |
/** |
|
* Constructeur |
|
|
*/ |
|
|
public function __construct() { |
|
|
|
|
|
// Appel du constructeur parent |
|
|
parent::__construct(); |
|
|
|
|
|
// Initialisation de l'attribut contents avec les clés qui doivent être |
|
|
// récupérées dans les données JSON reçues |
|
|
$this->contents['module'] = ''; |
|
|
$this->contents['data'] = ''; |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
* Destructeur |
|
|
*/ |
|
|
public function __destruct() { |
|
|
|
|
|
// Appel du destructeur parent |
|
|
parent::__destruct(); |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
25 |
* Cette méthode permet de définir le traitement du POST sur une requête |
* Cette méthode permet de définir le traitement du POST sur une requête |
26 |
* REST. Elle vérifie la validité du format des données reçues, effectue le |
* REST. Elle vérifie la validité du format des données reçues, effectue le |
27 |
* traitement et retourne le résultat. |
* traitement et retourne le résultat. |
28 |
* |
* |
29 |
* @param mixed $request_data Les données JSON reçues (voir @uses) |
* @param mixed $request_data Les données JSON reçues (voir @uses) |
|
* |
|
|
* @todo XXX Vérifier pourquoi la méthode sendReply n'est pas utilisée dans |
|
|
* la gestion du retour en fonction du résultat |
|
30 |
*/ |
*/ |
31 |
public function post($request_data) { |
public function post($request_data) { |
32 |
|
|
33 |
|
// Initialisation de l'attribut contents avec les clés qui doivent être |
34 |
|
// récupérées dans les données JSON reçues |
35 |
|
$this->contents['module'] = ''; |
36 |
|
$this->contents['data'] = ''; |
37 |
|
|
38 |
// Vérification de la validité du format des données de la requête REST |
// Vérification de la validité du format des données de la requête REST |
39 |
// Si le format n'est pas correct, on retourne un code 400 |
// Si le format n'est pas correct, on retourne un code 400 |
40 |
if (!$this->requestValid($request_data)) { |
if (!$this->requestValid($request_data)) { |
41 |
return $this->sendHttpCode(400, "Le format des données reçues n'est pas correct."); |
return $this->sendHttpCode(400, "Le format des données reçues". |
42 |
|
" n'est pas correct."); |
43 |
} |
} |
44 |
|
|
45 |
// Instanciation de la classe qui s'occupe du traitement métier |
// Instanciation de la classe qui s'occupe du traitement métier |
46 |
$this->metier_manager = new MaintenanceManager(); |
$this->metier_manager = new MaintenanceManager(); |
47 |
|
|
48 |
// Exécution du traitement |
// Exécution du traitement |
49 |
$ret = $this->metier_manager->performMaintenance($request_data['module'], $request_data['data']); |
$ret = $this->metier_manager->performMaintenance($request_data['module'], |
50 |
$msg = $this->metier_manager->getMessage(); |
$request_data['data']); |
51 |
|
|
52 |
// Gestion du retour en fonction du résultat |
// Gestion du retour en fonction du résultat |
53 |
if ($ret != 'KO') { |
return $this->sendReply($ret, $this->metier_manager->getMessage()); |
|
return $this->sendHttpCode(200, $msg); |
|
|
} |
|
|
return $this->sendHttpCode(500, $msg); |
|
54 |
|
|
55 |
} |
} |
56 |
|
|