Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2460 → Rev 2461

/trunk/jrest/services/CelMessage.php
1,8 → 1,24
<?php
// declare(encoding='UTF-8');
/**
* Service encapsulant l'envoie de courriel via le web service de l'annuaire.
*
* @internal Mininum PHP version : 5.2
* @category CEL
* @package Services
* @subpackage Encapsulation
* @version 0.1
* @author Mathias CHOUET <mathias@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Aurelien PERONNET <aurelien@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
*/
class CelMessage extends Cel {
 
private $mode = 'obs';
 
/**
* 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
12,14 → 28,13
* @param pairs array tableau contenant les valeurs du formulaire de messagerie
* (même format que le web service messagerie utilisateur de l'annuaire)
*/
public function updateElement($uid,$pairs)
{
public function updateElement($uid,$pairs) {
$this->verifierParametresObligatoires($uid, $pairs);
if(isset($pairs['type_envoi'])) {
if (isset($pairs['type_envoi'])) {
unset($pairs['type_envoi']);
}
if($uid[0] != 'obs' && $uid[0] != 'image') {
 
if ($uid[0] != 'obs' && $uid[0] != 'image') {
$info = array();
$info = 'Aucun mode n\'a été indiqué ';
$this->envoyer($info, 'text/html', 'utf-8', false);
27,11 → 42,11
} else {
$this->mode = $uid[0];
$id = $uid[1];
 
$methode = 'obtenirCourrielUtilisateurPourId'.ucwords($this->mode);
$courriel_utilisateur = $this->$methode($id);
if($courriel_utilisateur !== false) {
 
if ($courriel_utilisateur !== false) {
$resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs);
$this->envoyerJson($resultat);
exit;
43,44 → 58,43
}
}
}
 
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 = $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[1]) || !is_numeric($uid[1])) {
$info .= 'l\' identifiant 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) {
$rechercheObservation = new RechercheObservation($this->config);
return $rechercheObservation->obtenirCourrielUtilisateurPourIdObs($id_obs);
}
 
private function obtenirCourrielUtilisateurPourIdImage($id_image) {
$rechercheImage = new RechercheImage($this->config);
return $rechercheImage->obtenirCourrielUtilisateurPourIdImage($id_image);
}
}
?>
}