/[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 523 by mlimic, Fri Oct 19 11:59:44 2012 UTC revision 777 by fmichon, Tue Nov 20 16:09: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  class maintenance extends Services {  class maintenance extends Services {
23        
24      /*      /**
25       * Constructor       * 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
27       * Calls its parent's constructor and fills the contents array with the       * traitement et retourne le résultat.
28       * keys that are to be searched for in the incoming JSON data.       *
29         * @param mixed $request_data Les données JSON reçues (voir @uses)
30       */       */
31      function __construct() {      public function post($request_data) {
32          parent::__construct();  
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'] = '';          $this->contents['module'] = '';
36          $this->contents['data'] = '';          $this->contents['data'] = '';
37      }  
38                // 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
     /*  
      * Destructor  
      *  
      * Call's its parent's destructor.  
      */  
     function __destruct() {  
         parent::__destruct();  
     }  
       
       
     /*  
      * Called when a POST http request is made to initiate a  
      * synchronization process.  
      *  
      * Checks the validity of the format, and the presence of  
      * content (if mandatory) of the data received with the request.  
      * 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.  
      */  
     function post($request_data) {  
           
40          if (!$this->requestValid($request_data)) {          if (!$this->requestValid($request_data)) {
41              return $this->sendHttpCode(400, 'Missing mandatory data.');              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
46          $this->metier_manager = new MaintenanceManager();          $this->metier_manager = new MaintenanceManager();
         $ret = $this->metier_manager->performMaintenance(  
                         $request_data['module'], $request_data['data']);  
47    
48          // send the reply          // Exécution du traitement
49          return $this->sendReply($ret, 'Error when synchronizing.');          $ret = $this->metier_manager->performMaintenance($request_data['module'],
50                                                             $request_data['data']);
51    
52            // Gestion du retour en fonction du résultat
53            return $this->sendReply($ret, $this->metier_manager->getMessage());
54    
55      }      }
       
       
 }  
56    
57    }
58    
59  ?>  ?>

Legend:
Removed from v.523  
changed lines
  Added in v.777

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26