1 |
<?php |
<?php |
2 |
|
/** |
3 |
/* |
* Ce fichier permet de déclarer la classe maintenance, ressource exposée à |
4 |
* Treats requests that demand a synchronization. |
* travers l'interface REST qui hérite de la classe de base Services. |
|
* |
|
|
* @author: Mirna Limic <[email protected]> |
|
|
* @uses ./restler The RESTLER framework. When using PUT and POST http methods |
|
|
* the function receiving the incomming data MUST contain a parameter called |
|
|
* request_data. The RESTLER framework stores the incoming JSON string converted |
|
|
* into an array in the request_data parameter. |
|
|
* |
|
|
* @todo Finish the synchronization of user module. Add support for the |
|
|
* synchronization of additional modules. |
|
|
* |
|
|
* Date: 18/10/2012 |
|
|
* Follow-up: |
|
|
* Bugs: Unknown |
|
5 |
* |
* |
6 |
|
* @package openfoncier |
7 |
|
* @version SVN : $Id$ |
8 |
*/ |
*/ |
9 |
|
|
10 |
include_once ('./REST/services.php'); |
// Inclusion de la classe de base Services |
11 |
|
include_once('./REST/services.php'); |
12 |
|
|
13 |
|
// Inclusion de la classe maintenanceManager qui effectue le traitement métier |
14 |
include_once('./metier/maintenancemanager.php'); |
include_once('./metier/maintenancemanager.php'); |
15 |
|
|
16 |
|
/* |
17 |
|
* Cette classe définie la ressource 'maintenance' qui permet d'exposer des |
18 |
|
* 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 |
20 |
|
* la synchronisation des utilisateurs de l'application avec l'annuaire LDAP. |
21 |
|
* |
22 |
|
* @todo XXX Finir la synchronisation du module 'user' et ajouter le support |
23 |
|
* pour la synchronisation des modules additionnels |
24 |
|
*/ |
25 |
class maintenance extends Services { |
class maintenance extends Services { |
26 |
|
|
27 |
/* |
/** |
28 |
* Constructor |
* Constructeur |
|
* |
|
|
* Calls its parent's constructor and fills the contents array with the |
|
|
* keys that are to be searched for in the incoming JSON data. |
|
29 |
*/ |
*/ |
30 |
public function __construct() { |
public function __construct() { |
31 |
|
|
32 |
|
// Appel du constructeur parent |
33 |
parent::__construct(); |
parent::__construct(); |
34 |
|
|
35 |
|
// Initialisation de l'attribut contents avec les clés qui doivent être |
36 |
|
// récupérées dans les données JSON reçues |
37 |
$this->contents['module'] = ''; |
$this->contents['module'] = ''; |
38 |
$this->contents['data'] = ''; |
$this->contents['data'] = ''; |
39 |
|
|
40 |
} |
} |
41 |
|
|
42 |
|
/** |
43 |
/* |
* Destructeur |
|
* Destructor |
|
|
* |
|
|
* Call's its parent's destructor. |
|
44 |
*/ |
*/ |
45 |
public function __destruct() { |
public function __destruct() { |
46 |
|
|
47 |
|
// Appel du destructeur parent |
48 |
parent::__destruct(); |
parent::__destruct(); |
49 |
|
|
50 |
} |
} |
51 |
|
|
52 |
|
/** |
53 |
/* |
* Cette méthode permet de définir le traitement du POST sur une requête |
54 |
* Called when a POST http request is made to initiate a |
* REST. Elle vérifie la validité du format des données reçues, effectue le |
55 |
* synchronization process. |
* traitement et retourne le résultat. |
56 |
|
* |
57 |
|
* @param mixed $request_data Les données JSON reçues (voir @uses) |
58 |
* |
* |
59 |
* Checks the validity of the format, and the presence of |
* @todo XXX Vérifier pourquoi la méthode sendReply n'est pas utilisée dans |
60 |
* content (if mandatory) of the data received with the request. |
* la gestion du retour en fonction du résultat |
|
* Calls an matier/xxxManager to do the processing of the |
|
|
* request data. |
|
|
* @param mixed $request_data The incoming JSON data as an array. |
|
|
* Note: the parameter has to be named this way due to RESTLER's |
|
|
* parameter mapping of JSON data onto $request_data. |
|
|
* @return mixed The array contining the return code. Where |
|
|
* 400 is sent on error. |
|
|
* 200 is sent on success. |
|
61 |
*/ |
*/ |
62 |
public function post($request_data) { |
public function post($request_data) { |
63 |
|
|
64 |
|
// Vérification de la validité du format des données de la requête REST |
65 |
|
// Si le format n'est pas correct, on retourne un code 400 |
66 |
if (!$this->requestValid($request_data)) { |
if (!$this->requestValid($request_data)) { |
67 |
print ' request_data:'; |
return $this->sendHttpCode(400, "Le format des données reçues n'est pas correct."); |
|
print_r($request_data); |
|
|
return $this->sendHttpCode(400, 'Missing mandatory data.'); |
|
68 |
} |
} |
69 |
|
|
70 |
|
// Instanciation de la classe qui s'occupe du traitement métier |
71 |
$this->metier_manager = new MaintenanceManager(); |
$this->metier_manager = new MaintenanceManager(); |
72 |
$ret = $this->metier_manager->performMaintenance( |
|
73 |
$request_data['module'], $request_data['data']); |
// Exécution du traitement |
74 |
// send the reply |
$ret = $this->metier_manager->performMaintenance($request_data['module'], $request_data['data']); |
75 |
$msg = $this->metier_manager->getMessage(); |
$msg = $this->metier_manager->getMessage(); |
76 |
|
|
77 |
|
// Gestion du retour en fonction du résultat |
78 |
if ($ret != 'KO') { |
if ($ret != 'KO') { |
79 |
return $this->sendHttpCode(200, $msg); |
return $this->sendHttpCode(200, $msg); |
80 |
} |
} |
81 |
return $this->sendHttpCode(500, $msg); |
return $this->sendHttpCode(500, $msg); |
82 |
|
|
83 |
} |
} |
|
|
|
|
|
|
|
} |
|
84 |
|
|
85 |
|
} |
86 |
|
|
87 |
?> |
?> |