/[openfoncier]/trunk/services/metier/maintenancemanager.php
ViewVC logotype

Diff of /trunk/services/metier/maintenancemanager.php

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

revision 732 by mlimic, Tue Oct 30 17:05:34 2012 UTC revision 733 by fmichon, Fri Nov 16 17:55:28 2012 UTC
# Line 1  Line 1 
1  <?php  <?php
2    /**
3  /*   * Ce fichier permet de déclarer la classe MaintenanceManager, qui effectue les
4   * Processes requests received via services which are meant to initiate a   * traitements pour la ressource 'maintenance'.
  * synchronization.  
  *  
  * @author Mirna Limic <[email protected]>  
  * Date: 18/10/2012  
5   *   *
6   * Follow-up:   * @package openfoncier
7   * Bugs:   * @version SVN : $Id$
8   */   */
9    
10  require_once ("./metier/metiermanager.php");  // Inclusion de la classe de base MetierManager
11  //require_once('./REST/amqp_publisher.php');  require_once("./metier/metiermanager.php");
12    
13    /**
14     *
15     */
16  class MaintenanceManager extends MetierManager {  class MaintenanceManager extends MetierManager {
17        
18      /*      /**
19       * @var mixed Array containing function pointers (i.e. function names)       * @var mixed Ce tableau permet d'associer un module a une méthode,
20       * that are (dereferenced and) called to perform the synchronization tasks.       * le module (key) est celui reçu dans la requête REST, la méthode (value)
21         * est la méthode de cette classe qui va exécuter le traitement
22       */       */
23      var $fptrs = array('user' => 'synchronizeUsers',      var $fptrs = array(
24                         'consultation' => 'updateConsultationsStates'); // 'UserManager'          'user' => 'synchronizeUsers',
25                'consultation' => 'updateConsultationsStates',
26            );
27      /*  
28       * Constructor.      /**
29       *       * Constructeur
      * Calls its parent's constructor.  
30       */       */
31      public function __construct() {      public function __construct() {
32    
33            // Appel du constructeur parent
34          parent::__construct();          parent::__construct();
35    
36      }      }
37    
38            /**
39      /*       * Destructeur
40       * Destructor.       */
      *  
      * Calls its parent's destructor.  
      */      
41      public function __destruct() {      public function __destruct() {
42    
43            // Appel du destructeur parent
44          parent::__destruct();          parent::__destruct();
45    
46      }      }
47        
48            /**
49      /*       * Cette méthode permet de gérer l'appel aux différentes méthodes
50       * Starts a synchronization process by calling       * correspondantes au module appelé.
      * one of the functions in the fptrs array.  
51       *       *
52       * @param string $module The key to be used in order to retreive the name       * @param string $module Le module à exécuter reçu dans la requête
53       * of the function that should be called.       * @param mixed $data Les données reçues dans la requête
54       * @param mixed $data The data that was received as a part of the request.       * @return string Le résultat du traitement
      * @return string The result of processing.  
55       */       */
56      public function performMaintenance($module, $data) {      public function performMaintenance($module, $data) {
57            
58          // check that the known module is called          // Si le module n'existe pas dans la liste des modules disponibles
59            // alors on ajoute un message d'informations et on retourne un
60            // un résultat d'erreur
61          if (!in_array($module, array_keys($this->fptrs))) {          if (!in_array($module, array_keys($this->fptrs))) {
62              return 'Unknown module in request.';              $this->setMessage("Le module demandé n'existe pas");
63                return $this->BAD_DATA;
64          }          }
65            
66          $ret = call_user_func(array($this, $this->fptrs[$module]), $data);          // Si le module existe dans la liste des modules disponibles
67          return $ret;          // alors on appelle la méthode en question et on retourne son résultat
68            return call_user_func(array($this, $this->fptrs[$module]), $data);
69    
70      }      }
71        
72            /**
73      /*       * Cette méthode permet d'effectuer la synchronisation des utilisateurs
74       * Synchronizes the users data in a DB with the user's data from the       * de l'application avec l'annuaire LDAP paramétré dans l'application.
      * directory services that communicate via LDAP.  
75       *       *
76       * @param mixed $data The data that was received as a part of the request.       * @param mixed $data Les données reçues dans la requête
77       * @return string The result of processing.       * @return string Le résultat du traitement
78         *
79         * @todo XXX Faire une getsion des erreurs dans om_application pour
80         * permettre d'avoir un retour sur le déroulement de la synchronisation
81       */           */    
82      public function synchronizeUsers($data) {      public function synchronizeUsers($data) {
83          // depending on what is in the data do the treatement  
84          // currently only user synchronization with ldap is supported          // La gestion des erreurs ne permet pas de savoir si tout s'est déroulé
85          $keys = array_keys($data);          // correctement ou non donc on renvoi un retour erreur en attendant
86          if (in_array('userToAdd', $keys)          $this->setMessage("Erreur interne");
87              || in_array('userToDelete', $keys)          return $this->KO;
88              || in_array('userToUpdate', $keys)) {  
89              //$this->f->synchronizeUsers($data);          // Appel aux méthodes de synchronisation des utilisateurs via l'annuaire
90          }          $results = $this->f->initSynchronization();
91          return $this->OK;                  $this->f->synchronizeUsers($results);
92            return $this->OK;
93    
94      }      }
95        
96            /**
97      /*       * Cette méthode permet d'effectuer le traitement de gestion des avis
98       * Sets to favorable the avis (evaluation) of consultations whose limit       * tacites sur les consultations qui ont atteint leur date limite de
99       * date has passed without there being a return (from an external service).       * retour.
100       * @param mixed $data The data passed in with the REST call       *
101       * @return OK on success or not applicable, KO on DB error       * @param mixed $data Les données reçues dans la requête
102         * @return string Le résultat du traitement
103         *
104         * @todo XXX Traduire et commenter la méthode et voir si il est possible
105         * de la déplacer dans l'application
106       */       */
107      public function updateConsultationsStates($data) {      public function updateConsultationsStates($data) {
108    
109          $table_name = 'consultation';          $table_name = 'consultation';
110          $sql = "SELECT consultation FROM $table_name WHERE ".          $sql = "SELECT consultation FROM $table_name WHERE ".
111              " date_limite < DATE '". date('Y-m-d', time()) .              " date_limite < DATE '". date('Y-m-d', time()) .
# Line 150  class MaintenanceManager extends MetierM Line 164  class MaintenanceManager extends MetierM
164          $this->setMessage('Il y a eu '.count($ids).' demandes de consultations dont '.          $this->setMessage('Il y a eu '.count($ids).' demandes de consultations dont '.
165                            'l\'avis été passé à Tacite');                            'l\'avis été passé à Tacite');
166          return $this->OK;          return $this->OK;
167    
168      }      }
169    
170  }  }
171    
   
   
172  ?>  ?>

Legend:
Removed from v.732  
changed lines
  Added in v.733

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26