Skip to content
Snippets Groups Projects
Commit 65e3d9da authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Gestion exception si ws ne répondent pas

parent 313a3d20
Branches
Tags
No related merge requests found
Pipeline #10772 passed
......@@ -17,6 +17,7 @@ class SihamException extends \Exception
"AJOUT_IMPOSSIBLE" => "Ajout de l'adresse impossible",
"TYPTEL_DEJA_PRESENT" => "Un type de numéro de téléphone existe déjà pour cet agent",
"LONG_COMPL_ADRESSE_SUPERIEURE_A_38 " => "La longeur de l'adresse dépasse 38 caractéres",
"failed to load external entity" => "Les webservices SIHAM ne sont pas disponibles pour le moment.",
];
......@@ -24,24 +25,28 @@ class SihamException extends \Exception
public function __construct($message = "", $code = 0, \Throwable $previous = null)
{
//Message par défault dans le cas d'une erreur de l'API
$defaultMessage = "Un problème est survenu lors de l'appel à l'API SIHAM / " . $message;
if (!is_null($previous)) {
$defaultMessage .= " (" . $previous->getMessage() . ")";
}
$translate = '';
foreach ($this->errorMessages as $error => $mess) {
if (preg_match("/$error/", $message)) {
$translate = "Un problème est survenu lors de l'appel à l'API SIHAM / " . $mess;
if ($error == 'failed to load external entity') {
$translate = $mess;
}
break;
}
}
$message = (!empty($translate)) ? $translate : $defaultMessage;
parent::__construct($message, $code, $previous);
return parent::__construct($message, $code, $previous);
}
......
......@@ -791,6 +791,7 @@ class Siham
'listeNationalites' => $listeNationalites,
'listeNumerosTelephoneFax' => $listeNumerosTelephoneFax,
'listePositions' => $listePositions,
'listeCarriere' => $listeCarriere,
'listeContrats' => $listeContrats,
'motifEntree' => (isset($params['motifEntree'])) ? strtoupper($params['motifEntree']) : self::SIHAM_MOTIF_ENTREE_DEFAULT,
'nomPatronymique' => (isset($params['nomPatronymique'])) ? strtoupper($params['nomPatronymique']) : '',
......
......@@ -3,6 +3,8 @@
namespace UnicaenSiham\Service;
use UnicaenSiham\Exception\SihamException;
class SihamClient
{
const SOAP_VERSION = SOAP_1_1;
......@@ -99,7 +101,11 @@ class SihamClient
if (array_key_exists($webserviceName, $this->wsdl)) {
$wsdl = $this->baseUrl . $this->wsdl[$webserviceName];
try {
$this->client = new \SoapClient($wsdl, $params);
} catch (\Exception $e) {
throw new SihamException($e->getMessage(), 0, $e);
}
} else {
throw new \Exception('Le webservice demandé n\'existe pas');
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment