Subversion Repositories eFlore/Applications.cel

Rev

Rev 1492 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1492 Rev 2461
Line 1... Line 1...
1
<?php
1
<?php
-
 
2
// declare(encoding='UTF-8');
-
 
3
/**
-
 
4
 * Service encapsulant l'envoie de courriel via le web service de l'annuaire.
-
 
5
 *
-
 
6
 * @internal   Mininum PHP version : 5.2
-
 
7
 * @category   CEL
-
 
8
 * @package    Services
-
 
9
 * @subpackage Encapsulation
-
 
10
 * @version    0.1
-
 
11
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
-
 
12
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
-
 
13
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
-
 
14
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
-
 
15
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
16
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
-
 
17
 */
2
class CelMessage extends Cel {
18
class CelMessage extends Cel {
3
	
19
 
4
	private $mode = 'obs';
20
	private $mode = 'obs';
5
	
21
 
6
	/**
22
	/**
7
	* Méthode appelée avec une requête de type POST avec un identifiant d'obs.
23
	* Méthode appelée avec une requête de type POST avec un identifiant d'obs.
8
	* Envoi un message à l'utilisateur ayant saisi l'observation
24
	* Envoi un message à l'utilisateur ayant saisi l'observation
9
	*
25
	*
10
	* @param int $uid[0] mode interrogation (obs ou image)
26
	* @param int $uid[0] mode interrogation (obs ou image)
11
	* @param int $uid[1] identifiant observation ou image suivant le mode
27
	* @param int $uid[1] identifiant observation ou image suivant le mode
12
	* @param pairs array tableau contenant les valeurs du formulaire de messagerie
28
	* @param pairs array tableau contenant les valeurs du formulaire de messagerie
13
	* (même format que le web service messagerie utilisateur de l'annuaire)
29
	* (même format que le web service messagerie utilisateur de l'annuaire)
14
	*/
30
	*/
15
	public function updateElement($uid,$pairs)
31
	public function updateElement($uid,$pairs) {
16
	{
-
 
17
		$this->verifierParametresObligatoires($uid, $pairs);
32
		$this->verifierParametresObligatoires($uid, $pairs);
18
		if(isset($pairs['type_envoi'])) {
33
		if (isset($pairs['type_envoi'])) {
19
			unset($pairs['type_envoi']);
34
			unset($pairs['type_envoi']);
20
		}
35
		}
21
		
36
 
22
		if($uid[0] != 'obs' && $uid[0] != 'image') {
37
		if ($uid[0] != 'obs' && $uid[0] != 'image') {
23
			$info = array();
38
			$info = array();
24
			$info = 'Aucun mode n\'a été indiqué ';
39
			$info = 'Aucun mode n\'a été indiqué ';
25
			$this->envoyer($info, 'text/html', 'utf-8', false);
40
			$this->envoyer($info, 'text/html', 'utf-8', false);
26
			exit;
41
			exit;
27
		} else {
42
		} else {
28
			$this->mode = $uid[0];
43
			$this->mode = $uid[0];
29
			$id = $uid[1];
44
			$id = $uid[1];
30
			
45
 
31
			$methode = 'obtenirCourrielUtilisateurPourId'.ucwords($this->mode);
46
			$methode = 'obtenirCourrielUtilisateurPourId'.ucwords($this->mode);
32
			$courriel_utilisateur = $this->$methode($id);
47
			$courriel_utilisateur = $this->$methode($id);
33
			
48
 
34
			if($courriel_utilisateur !== false) {
49
			if ($courriel_utilisateur !== false) {
35
				$resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs);
50
				$resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs);
36
				$this->envoyerJson($resultat);
51
				$this->envoyerJson($resultat);
37
				exit;
52
				exit;
38
			} else {
53
			} else {
39
				$info = array();
54
				$info = array();
Line 41... Line 56...
41
				$this->envoyer($info, 'text/html', 'utf-8', false);
56
				$this->envoyer($info, 'text/html', 'utf-8', false);
42
				exit;
57
				exit;
43
			}
58
			}
44
		}
59
		}
45
	}
60
	}
46
	
61
 
47
	private function envoyerRequeteMessage($courriel_utilisateur, $pairs) {
62
	private function envoyerRequeteMessage($courriel_utilisateur, $pairs) {
48
		$base_url = $this->config['settings']['baseURLServicesAnnuaireTpl'];
63
		$base_url = $this->config['settings']['baseURLServicesAnnuaireTpl'];
49
		$rest_client = $this->getRestClient();
64
		$rest_client = $this->getRestClient();
50
		$url_messagerie = str_replace('%s', "utilisateur/".urlencode($courriel_utilisateur)."/message", $base_url);
65
		$url_messagerie = str_replace('%s', "utilisateur/".urlencode($courriel_utilisateur)."/message", $base_url);
51
		$resultat_json = $rest_client->modifier($url_messagerie, $pairs);	
66
		$resultat_json = $rest_client->modifier($url_messagerie, $pairs);
52
		$resultat = json_decode($resultat_json);
67
		$resultat = json_decode($resultat_json);
53
		return $resultat;
68
		return $resultat;
54
	}
69
	}
55
	
70
 
56
	private function verifierParametresObligatoires($uid ,$params) {
71
	private function verifierParametresObligatoires($uid ,$params) {
57
		$params_obligatoires = array('sujet', 'message', 'utilisateur_courriel', 'destinataire_id');
72
		$params_obligatoires = array('sujet', 'message', 'utilisateur_courriel', 'destinataire_id');
58
		$info = array();
73
		$info = array();
59
		
74
 
60
		if(!isset($uid[1]) || !is_numeric($uid[1])) {
75
		if(!isset($uid[1]) || !is_numeric($uid[1])) {
61
			$info .= 'l\' identifiant doit être un entier ';
76
			$info .= 'l\' identifiant doit être un entier ';
62
		}
77
		}
63
		
78
 
64
		foreach($params_obligatoires as $param) {
79
		foreach($params_obligatoires as $param) {
65
			if(!isset($params[$param]) || trim($params[$param]) == "") {
80
			if(!isset($params[$param]) || trim($params[$param]) == "") {
66
				$info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
81
				$info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
67
			}
82
			}
68
		}
83
		}
69
		
84
 
70
		if(!empty($info)) {
85
		if(!empty($info)) {
71
			$this->envoyer($info, 'text/html', 'utf-8', false);
86
			$this->envoyer($info, 'text/html', 'utf-8', false);
72
			exit;
87
			exit;
73
		}
88
		}
74
	}
89
	}
75
	
90
 
76
	private function obtenirCourrielUtilisateurPourIdObs($id_obs) {
91
	private function obtenirCourrielUtilisateurPourIdObs($id_obs) {
77
		$rechercheObservation = new RechercheObservation($this->config);
92
		$rechercheObservation = new RechercheObservation($this->config);
78
		return $rechercheObservation->obtenirCourrielUtilisateurPourIdObs($id_obs);
93
		return $rechercheObservation->obtenirCourrielUtilisateurPourIdObs($id_obs);
79
	}
94
	}
80
	
95
 
81
	private function obtenirCourrielUtilisateurPourIdImage($id_image) {
96
	private function obtenirCourrielUtilisateurPourIdImage($id_image) {
82
		$rechercheImage = new RechercheImage($this->config);
97
		$rechercheImage = new RechercheImage($this->config);
83
		return $rechercheImage->obtenirCourrielUtilisateurPourIdImage($id_image);
98
		return $rechercheImage->obtenirCourrielUtilisateurPourIdImage($id_image);
84
	}
99
	}
85
}
-
 
86
?>
-
 
87
100
}
-
 
101
88
102