Example #1
0
 /**
  * Perform rate limiting before a request is executed.
  *
  * @param \Dingo\Api\Routing\Route $route
  * @param \Illuminate\Http\Request $request
  * @param int                      $limit
  * @param int                      $expires
  *
  * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
  *
  * @return mixed
  */
 public function filter(Route $route, Request $request, $limit = 0, $expires = 0)
 {
     if ($this->requestIsInternal($request)) {
         return;
     }
     $limit = $route->getRateLimit($limit);
     $expires = $route->getLimitExpiration($expires);
     $this->limiter->rateLimitRequest($request, $limit, $expires);
     if (!$this->limiter->requestWasRateLimited()) {
         return;
     }
     $this->attachAfterFilter();
     if ($this->limiter->exceededRateLimit()) {
         throw new AccessDeniedHttpException();
     }
 }