/**
  * Register any other events for your application.
  *
  * @param  \Illuminate\Contracts\Events\Dispatcher $events
  *
  * @return void
  */
 public function boot(DispatcherContract $events)
 {
     parent::boot($events);
     $response = new ResponseBuilder(new JsonResponse());
     /*
     |--------------------------------------------------------------------------
     | Events
     |--------------------------------------------------------------------------
     |
     | These are events used to return custom JSON response when error occurs
     | using JWT Library. This type of event listening is compatible with
     | Laravel 4.* that JWT Library currently supports.
     |
     */
     Event::listen('tymon.jwt.invalid', function ($exception) {
         throw $exception;
     });
     Event::listen('tymon.jwt.expired', function ($exception) {
         throw $exception;
     });
     Event::listen('tymon.jwt.absent', function () use($response) {
         $exception = new TokenAbsentException();
         return $response->exception($exception);
     });
     Event::listen('tymon.jwt.user_not_found', function () use($response) {
         $exception = new TokenInvalidException();
         return $response->exception($exception);
     });
 }
 /**
  * Overwrites default response method on FormRequest class. The only change is that
  * JSON response have custom structure.
  *
  * @param array $errors
  *
  * @return $this|JsonResponse
  */
 public function response(array $errors)
 {
     if ($this->ajax() || $this->wantsJson()) {
         $response = new ResponseBuilder(new JsonResponse());
         return $response->error(ResponseCode::UNPROCESSABLE_ENTITY, $errors);
     }
     return $this->redirector->to($this->getRedirectUrl())->withInput($this->except($this->dontFlash))->withErrors($errors, $this->errorBag);
 }
 /**
  * Create API Exception response by given Exception.
  *
  * @param $exception
  * @return JsonResponse
  */
 private function apiException($exception)
 {
     $response = new ResponseBuilder(new JsonResponse());
     return $response->exception($exception);
 }