Subversion Repositories eFlore/Applications.cel

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1490 aurelien 1
<?php
2
class CelMessageObs extends Cel {
3
 
4
	/**
5
	* 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
7
	*
8
	* @param int $uid[0] identifiant observation
9
	* @param pairs array tableau contenant les valeurs du formulaire de messagerie
10
	*/
11
	public function updateElement($uid,$pairs)
12
	{
13
		$this->verifierParametresObligatoires($uid, $pairs);
14
		if(isset($pairs['type_envoi'])) {
15
			unset($pairs['type_envoi']);
16
		}
17
		$id_obs = $uid[0];
18
		$courriel_utilisateur = $this->obtenirCourrielUtilisateurPourIdObs($id_obs);
19
 
20
		if($courriel_utilisateur !== false) {
21
			$resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs);
22
			$this->envoyerJson($resultat);
23
			exit;
24
		} else {
25
			$info = array();
26
			$info = 'Impossible de trouver le courriel associé à cette observation ';
27
			$this->envoyer($info, 'text/html', 'utf-8', false);
28
			exit;
29
		}
30
	}
31
 
32
	private function envoyerRequeteMessage($courriel_utilisateur, $pairs) {
33
		$base_url = $this->config['settings']['baseURLServicesAnnuaireTpl'];
34
		$rest_client = $this->getRestClient();
35
		$url_messagerie = str_replace('%s', "utilisateur/".urlencode($courriel_utilisateur)."/message", $base_url);
36
		$resultat_json = $rest_client->modifier($url_messagerie, $pairs);
37
		$resultat = json_decode($resultat_json);
38
		return $resultat;
39
	}
40
 
41
	private function verifierParametresObligatoires($uid ,$params) {
42
		$params_obligatoires = array('sujet', 'message', 'utilisateur_courriel', 'destinataire_id');
43
		$info = array();
44
 
45
		if(!isset($uid[0]) || !is_numeric($uid[0])) {
46
			$info .= 'l\' identifiant d\'observation doit être un entier ';
47
		}
48
 
49
		foreach($params_obligatoires as $param) {
50
			if(!isset($params[$param]) || trim($params[$param]) == "") {
51
				$info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
52
			}
53
		}
54
 
55
		if(!empty($info)) {
56
			$this->envoyer($info, 'text/html', 'utf-8', false);
57
			exit;
58
		}
59
	}
60
 
61
	private function obtenirCourrielUtilisateurPourIdObs($id_obs) {
62
		$requete = 'SELECT courriel_utilisateur FROM cel_obs WHERE '.
63
		         'id_observation = '.$this->proteger($id_obs);
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'];
70
		}
71
 
72
		return $retour;
73
	}
74
 
75
}
76
?>