You are here

public function HttpMiddleware::__invoke in File Link 2.0.x

Invoked method that returns a promise.

File

tests/modules/file_link_test/src/HttpMiddleware.php, line 28

Class

HttpMiddleware
A middleware for guzzle to test requests.

Namespace

Drupal\file_link_test

Code

public function __invoke() {
  return function ($handler) {
    return function (RequestInterface $request, array $options) use ($handler) {
      $uri = $request
        ->getUri();
      $settings = Settings::get('file_link_test_middleware', []);

      // Check if the request is made to one of our fixtures.
      $key = $uri
        ->getScheme() . '://' . $uri
        ->getHost() . $uri
        ->getPath();
      if (array_key_exists($key, $settings)) {
        if (!isset(static::$recorder[$key])) {
          static::$recorder[$key] = 0;
        }
        static::$recorder[$key]++;
        return $this
          ->createPromise($request, $settings[$key]);
      }

      // Otherwise, no intervention. We defer to the handler stack.
      return $handler($request, $options);
    };
  };
}