Subversion Repositories eFlore/Applications.cel

Rev

Rev 1490 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1490 Rev 1492
1
<?php
1
<?php
2
class CelMessageObs extends Cel {
2
class CelMessage extends Cel {
-
 
3
	
-
 
4
	private $mode = 'obs';
3
	
5
	
4
	/**
6
	/**
5
	* Méthode appelée avec une requête de type POST avec un identifiant d'obs.
7
	* Méthode appelée avec une requête de type POST avec un identifiant d'obs.
6
	* Envoi un message à l'utilisateur ayant saisi l'observation
8
	* Envoi un message à l'utilisateur ayant saisi l'observation
7
	*
9
	*
-
 
10
	* @param int $uid[0] mode interrogation (obs ou image)
8
	* @param int $uid[0] identifiant observation
11
	* @param int $uid[1] identifiant observation ou image suivant le mode
9
	* @param pairs array tableau contenant les valeurs du formulaire de messagerie
12
	* @param pairs array tableau contenant les valeurs du formulaire de messagerie
-
 
13
	* (même format que le web service messagerie utilisateur de l'annuaire)
10
	*/
14
	*/
11
	public function updateElement($uid,$pairs)
15
	public function updateElement($uid,$pairs)
12
	{
16
	{
13
		$this->verifierParametresObligatoires($uid, $pairs);
17
		$this->verifierParametresObligatoires($uid, $pairs);
14
		if(isset($pairs['type_envoi'])) {
18
		if(isset($pairs['type_envoi'])) {
15
			unset($pairs['type_envoi']);
19
			unset($pairs['type_envoi']);
16
		}
20
		}
17
		$id_obs = $uid[0];
-
 
18
		$courriel_utilisateur = $this->obtenirCourrielUtilisateurPourIdObs($id_obs);
-
 
19
		
21
		
20
		if($courriel_utilisateur !== false) {
-
 
21
			$resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs);
-
 
22
			$this->envoyerJson($resultat);
-
 
23
			exit;
-
 
24
		} else {
22
		if($uid[0] != 'obs' && $uid[0] != 'image') {
25
			$info = array();
23
			$info = array();
26
			$info = 'Impossible de trouver le courriel associé à cette observation ';
24
			$info = 'Aucun mode n\'a été indiqué ';
27
			$this->envoyer($info, 'text/html', 'utf-8', false);
25
			$this->envoyer($info, 'text/html', 'utf-8', false);
-
 
26
			exit;
-
 
27
		} else {
-
 
28
			$this->mode = $uid[0];
-
 
29
			$id = $uid[1];
-
 
30
			
-
 
31
			$methode = 'obtenirCourrielUtilisateurPourId'.ucwords($this->mode);
-
 
32
			$courriel_utilisateur = $this->$methode($id);
-
 
33
			
-
 
34
			if($courriel_utilisateur !== false) {
-
 
35
				$resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs);
-
 
36
				$this->envoyerJson($resultat);
-
 
37
				exit;
-
 
38
			} else {
-
 
39
				$info = array();
-
 
40
				$info = 'Impossible de trouver le courriel associé à cet identifiant ';
-
 
41
				$this->envoyer($info, 'text/html', 'utf-8', false);
-
 
42
				exit;
28
			exit;
43
			}
29
		}
44
		}
30
	}
45
	}
31
	
46
	
32
	private function envoyerRequeteMessage($courriel_utilisateur, $pairs) {
47
	private function envoyerRequeteMessage($courriel_utilisateur, $pairs) {
33
		$base_url = $this->config['settings']['baseURLServicesAnnuaireTpl'];
48
		$base_url = $this->config['settings']['baseURLServicesAnnuaireTpl'];
34
		$rest_client = $this->getRestClient();
49
		$rest_client = $this->getRestClient();
35
		$url_messagerie = str_replace('%s', "utilisateur/".urlencode($courriel_utilisateur)."/message", $base_url);
50
		$url_messagerie = str_replace('%s', "utilisateur/".urlencode($courriel_utilisateur)."/message", $base_url);
36
		$resultat_json = $rest_client->modifier($url_messagerie, $pairs);	
51
		$resultat_json = $rest_client->modifier($url_messagerie, $pairs);	
37
		$resultat = json_decode($resultat_json);
52
		$resultat = json_decode($resultat_json);
38
		return $resultat;
53
		return $resultat;
39
	}
54
	}
40
	
55
	
41
	private function verifierParametresObligatoires($uid ,$params) {
56
	private function verifierParametresObligatoires($uid ,$params) {
42
		$params_obligatoires = array('sujet', 'message', 'utilisateur_courriel', 'destinataire_id');
57
		$params_obligatoires = array('sujet', 'message', 'utilisateur_courriel', 'destinataire_id');
43
		$info = array();
58
		$info = array();
44
		
59
		
45
		if(!isset($uid[0]) || !is_numeric($uid[0])) {
60
		if(!isset($uid[1]) || !is_numeric($uid[1])) {
46
			$info .= 'l\' identifiant d\'observation doit être un entier ';
61
			$info .= 'l\' identifiant doit être un entier ';
47
		}
62
		}
48
		
63
		
49
		foreach($params_obligatoires as $param) {
64
		foreach($params_obligatoires as $param) {
50
			if(!isset($params[$param]) || trim($params[$param]) == "") {
65
			if(!isset($params[$param]) || trim($params[$param]) == "") {
51
				$info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
66
				$info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
52
			}
67
			}
53
		}
68
		}
54
		
69
		
55
		if(!empty($info)) {
70
		if(!empty($info)) {
56
			$this->envoyer($info, 'text/html', 'utf-8', false);
71
			$this->envoyer($info, 'text/html', 'utf-8', false);
57
			exit;
72
			exit;
58
		}
73
		}
59
	}
74
	}
60
	
75
	
61
	private function obtenirCourrielUtilisateurPourIdObs($id_obs) {
76
	private function obtenirCourrielUtilisateurPourIdObs($id_obs) {
62
		$requete = 'SELECT courriel_utilisateur FROM cel_obs WHERE '.
-
 
63
		         'id_observation = '.$this->proteger($id_obs);  
77
		$rechercheObservation = new RechercheObservation($this->config);
64
		
-
 
65
		$utilisateur_courriel = $this->executerRequete($requete);
-
 
66
		
-
 
67
		$retour = false;
-
 
68
		if(!empty($utilisateur_courriel) && isset($utilisateur_courriel[0]['courriel_utilisateur'])) {
-
 
69
			$retour = $utilisateur_courriel[0]['courriel_utilisateur'];
78
		return $rechercheObservation->obtenirCourrielUtilisateurPourIdObs($id_obs);
70
		}
-
 
71
		
-
 
72
		return $retour;
-
 
73
	}
79
	}
-
 
80
	
-
 
81
	private function obtenirCourrielUtilisateurPourIdImage($id_image) {
-
 
82
		$rechercheImage = new RechercheImage($this->config);
-
 
83
		return $rechercheImage->obtenirCourrielUtilisateurPourIdImage($id_image);
74
	
84
	}
75
}
85
}
76
?>
86
?>