Subversion Repositories eFlore/Applications.cel

Rev

Rev 1492 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
class CelMessageObs extends Cel {
        
        /**
        * Méthode appelée avec une requête de type POST avec un identifiant d'obs.
        * Envoi un message à l'utilisateur ayant saisi l'observation
        *
        * @param int $uid[0] identifiant observation
        * @param pairs array tableau contenant les valeurs du formulaire de messagerie
        */
        public function updateElement($uid,$pairs)
        {
                $this->verifierParametresObligatoires($uid, $pairs);
                if(isset($pairs['type_envoi'])) {
                        unset($pairs['type_envoi']);
                }
                $id_obs = $uid[0];
                $courriel_utilisateur = $this->obtenirCourrielUtilisateurPourIdObs($id_obs);
                
                if($courriel_utilisateur !== false) {
                        $resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs);
                        $this->envoyerJson($resultat);
                        exit;
                } else {
                        $info = array();
                        $info = 'Impossible de trouver le courriel associé à cette observation ';
                        $this->envoyer($info, 'text/html', 'utf-8', false);
                        exit;
                }
        }
        
        private function envoyerRequeteMessage($courriel_utilisateur, $pairs) {
                $base_url = $this->config['settings']['baseURLServicesAnnuaireTpl'];
                $rest_client = $this->getRestClient();
                $url_messagerie = str_replace('%s', "utilisateur/".urlencode($courriel_utilisateur)."/message", $base_url);
                $resultat_json = $rest_client->modifier($url_messagerie, $pairs);       
                $resultat = json_decode($resultat_json);
                return $resultat;
        }
        
        private function verifierParametresObligatoires($uid ,$params) {
                $params_obligatoires = array('sujet', 'message', 'utilisateur_courriel', 'destinataire_id');
                $info = array();
                
                if(!isset($uid[0]) || !is_numeric($uid[0])) {
                        $info .= 'l\' identifiant d\'observation doit être un entier ';
                }
                
                foreach($params_obligatoires as $param) {
                        if(!isset($params[$param]) || trim($params[$param]) == "") {
                                $info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
                        }
                }
                
                if(!empty($info)) {
                        $this->envoyer($info, 'text/html', 'utf-8', false);
                        exit;
                }
        }
        
        private function obtenirCourrielUtilisateurPourIdObs($id_obs) {
                $requete = 'SELECT courriel_utilisateur FROM cel_obs WHERE '.
                         'id_observation = '.$this->proteger($id_obs);  
                
                $utilisateur_courriel = $this->executerRequete($requete);
                
                $retour = false;
                if(!empty($utilisateur_courriel) && isset($utilisateur_courriel[0]['courriel_utilisateur'])) {
                        $retour = $utilisateur_courriel[0]['courriel_utilisateur'];
                }
                
                return $retour;
        }
        
}
?>