public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $exception = $event->getException();
     //This listener only wants to deal with this particular Exception
     if (!$exception instanceof \GoCardless\Enterprise\Exceptions\ApiException) {
         return;
     }
     $output = $event->getOutput();
     $rawReasonPhrase = $exception->getReasonPhrase();
     $data = json_decode($rawReasonPhrase, true);
     $exceptionName = get_class($exception);
     $gocardlessErrorMessage = isset($data['error']['message']) ? $data['error']['message'] : 'No Gocardless error available';
     $fieldErrors = isset($data['error']['errors']) ? $data['error']['errors'] : array();
     $output->writeln("");
     $output->writeln("Exception: {$exceptionName}");
     $output->writeln("---------");
     $output->writeln("Gocardless error message: {$gocardlessErrorMessage}");
     if ($fieldErrors) {
         $output->writeln("");
         $output->writeln("Field Specific error messages");
     }
     foreach ($fieldErrors as $error) {
         $output->writeln("");
         foreach ($error as $k => $e) {
             $output->writeln("{$k}: {$e}");
         }
         $output->writeln("-----------");
     }
     $output->writeln("LOOK ABOVE FOR MORE INFORMATION ABOUT THIS EXCEPTION");
 }
예제 #2
0
 /**
  * @param ConsoleExceptionEvent $event
  */
 public function onConsoleError(ConsoleExceptionEvent $event)
 {
     $exception = $event->getException();
     $command = $event->getCommand();
     $output = $event->getOutput();
     $this->logger->error(sprintf("error while executing %s -> %s", $command->getName(), $exception->getMessage()));
     if ($this->config->get("common/debug")) {
         return;
     }
     $output->writeln(sprintf("error while executing %s -> %s", $command->getName(), $exception->getMessage()));
 }
 /**
  * @param \Symfony\Component\Console\Event\ConsoleExceptionEvent $event
  */
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $this->campfire->notifyOnConsoleException($event->getInput(), $event->getOutput(), $event->getException(), $event->getExitCode());
 }