New file |
0,0 → 1,100 |
<?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 |
* |
* @param int $uid[0] mode interrogation (obs ou image) |
* @param int $uid[1] identifiant observation ou image suivant le mode |
* @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) { |
$this->verifierParametresObligatoires($uid, $pairs); |
if (isset($pairs['type_envoi'])) { |
unset($pairs['type_envoi']); |
} |
|
if ($uid[0] != 'obs' && $uid[0] != 'image') { |
$info = array(); |
$info = 'Aucun mode n\'a été indiqué '; |
$this->envoyer($info, 'text/html', 'utf-8', false); |
exit; |
} else { |
$this->mode = $uid[0]; |
$id = $uid[1]; |
|
$methode = 'obtenirCourrielUtilisateurPourId'.ucwords($this->mode); |
$courriel_utilisateur = $this->$methode($id); |
|
if ($courriel_utilisateur !== false) { |
$resultat = $this->envoyerRequeteMessage($courriel_utilisateur, $pairs); |
$this->envoyerJson($resultat); |
exit; |
} else { |
$info = array(); |
$info = 'Impossible de trouver le courriel associé à cet identifiant '; |
$this->envoyer($info, 'text/html', 'utf-8', false); |
exit; |
} |
} |
} |
|
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_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); |
} |
} |