Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
1490 aurelien 1
<?php
1492 aurelien 2
class CelMessage extends Cel {
1490 aurelien 3
 
1492 aurelien 4
	private $mode = 'obs';
5
 
1490 aurelien 6
	/**
7
	* 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
9
	*
1492 aurelien 10
	* @param int $uid[0] mode interrogation (obs ou image)
11
	* @param int $uid[1] identifiant observation ou image suivant le mode
1490 aurelien 12
	* @param pairs array tableau contenant les valeurs du formulaire de messagerie
1492 aurelien 13
	* (même format que le web service messagerie utilisateur de l'annuaire)
1490 aurelien 14
	*/
15
	public function updateElement($uid,$pairs)
16
	{
17
		$this->verifierParametresObligatoires($uid, $pairs);
18
		if(isset($pairs['type_envoi'])) {
19
			unset($pairs['type_envoi']);
20
		}
21
 
1492 aurelien 22
		if($uid[0] != 'obs' && $uid[0] != 'image') {
1490 aurelien 23
			$info = array();
1492 aurelien 24
			$info = 'Aucun mode n\'a été indiqué ';
1490 aurelien 25
			$this->envoyer($info, 'text/html', 'utf-8', false);
26
			exit;
1492 aurelien 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;
43
			}
1490 aurelien 44
		}
45
	}
46
 
47
	private function envoyerRequeteMessage($courriel_utilisateur, $pairs) {
48
		$base_url = $this->config['settings']['baseURLServicesAnnuaireTpl'];
49
		$rest_client = $this->getRestClient();
50
		$url_messagerie = str_replace('%s', "utilisateur/".urlencode($courriel_utilisateur)."/message", $base_url);
51
		$resultat_json = $rest_client->modifier($url_messagerie, $pairs);
52
		$resultat = json_decode($resultat_json);
53
		return $resultat;
54
	}
55
 
56
	private function verifierParametresObligatoires($uid ,$params) {
57
		$params_obligatoires = array('sujet', 'message', 'utilisateur_courriel', 'destinataire_id');
58
		$info = array();
59
 
1492 aurelien 60
		if(!isset($uid[1]) || !is_numeric($uid[1])) {
61
			$info .= 'l\' identifiant doit être un entier ';
1490 aurelien 62
		}
63
 
64
		foreach($params_obligatoires as $param) {
65
			if(!isset($params[$param]) || trim($params[$param]) == "") {
66
				$info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
67
			}
68
		}
69
 
70
		if(!empty($info)) {
71
			$this->envoyer($info, 'text/html', 'utf-8', false);
72
			exit;
73
		}
74
	}
75
 
76
	private function obtenirCourrielUtilisateurPourIdObs($id_obs) {
1492 aurelien 77
		$rechercheObservation = new RechercheObservation($this->config);
78
		return $rechercheObservation->obtenirCourrielUtilisateurPourIdObs($id_obs);
1490 aurelien 79
	}
80
 
1492 aurelien 81
	private function obtenirCourrielUtilisateurPourIdImage($id_image) {
82
		$rechercheImage = new RechercheImage($this->config);
83
		return $rechercheImage->obtenirCourrielUtilisateurPourIdImage($id_image);
84
	}
1490 aurelien 85
}
86
?>