/[openfoncier]/trunk/services/REST/maintenance.php
ViewVC logotype

Diff of /trunk/services/REST/maintenance.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 541 by mlimic, Mon Oct 29 15:44:03 2012 UTC revision 715 by fmichon, Fri Nov 16 10:13:41 2012 UTC
# Line 1  Line 1 
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  ?>  ?>

Legend:
Removed from v.541  
changed lines
  Added in v.715

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26