/**
  * Create a new SoapException.
  */
 public function __construct(\SoapFault $fault, \SoapClient $client)
 {
     $message = $fault->getMessage();
     $code = $fault->getCode();
     if ($message === "UPnPError") {
         $code = $fault->detail->UPnPError->errorCode;
         $message .= ": {$code}";
     }
     parent::__construct($message, $code);
     $this->client = $client;
 }
 /**
  * @param \SoapFault $fault
  *
  * @return WebserviceException
  * @throws ServerException
  */
 public function convertToException($fault)
 {
     $errorClassName = isset($fault->{'detail'}->{'errorcode'}) ? $fault->{'detail'}->{'errorcode'} : 'Server';
     $errorClassFQ = 'WebservicesNl\\Common\\Exception\\' . str_replace('.', '\\', $errorClassName) . 'Exception';
     // should we throw an error about throwing an error? or just create a default error?
     if (!class_exists($errorClassFQ)) {
         throw new ServerException("Could not convert errorCode: '{$errorClassName}'");
     }
     /** @var WebserviceException $exception */
     return new $errorClassFQ($fault->getMessage(), $fault->getCode());
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function handle(\SoapFault $e)
 {
     $message = trim($e->getMessage());
     foreach ($this->classes as $class) {
         $results = array();
         if (preg_match('`' . str_replace('%s', '(.*?)', $class::MESSAGE) . '`is', $message, $results)) {
             $rc = new \ReflectionClass($class);
             unset($results[0]);
             throw $rc->newInstanceArgs($results);
         }
     }
     throw new ClientException($message, $e->getCode(), $e);
 }
Example #4
0
 /**
  * Raise a soft error event which
  * will save errorto database.
  *
  * @param string $companySymbol
  * @param \Exception|\SoapFault $exception
  * @param $message
  */
 protected function raiseEvent($companySymbol, $exception, $message)
 {
     event(new SoftSoapErrorRaised($companySymbol, $exception->getCode(), $message, $exception->getTraceAsString()));
 }
Example #5
0
 /**
  * @param AbstractModel|AbstractModel[]|\SoapFault $result
  * @throws InvalidArgument
  * @return $this;
  */
 public function setResult($result)
 {
     if ($result instanceof \SoapFault) {
         $this->setIsSoapFault(true);
         $this->setErrorCode($result->getCode());
         $this->setErrorMsg(SoapClientFactory::convertEncoding($result->getMessage()));
         $this->result = null;
         $this->setSoapFault($result);
     } else {
         $piece = $result;
         if (is_array($result)) {
             if (count($result)) {
                 $piece = reset($result);
             } else {
                 $piece = null;
             }
         }
         if ($piece !== null && !$piece instanceof AbstractModel && !$piece instanceof \SoapFault) {
             throw new InvalidArgument('O resultado deve ser uma instância de PhpSigep\\Model\\AbstractModel ou um ' . 'array de PhpSigep\\Model\\AbstractModel ou uma instância de \\SoapFault.');
         }
         $this->result = $result;
     }
     return $this;
 }
Example #6
0
 private function createException(\SoapFault $e)
 {
     return new IOException($e->getMessage(), $e->getCode(), $e);
 }