diff --git a/app/controllers/general.php b/app/controllers/general.php index ebbe9b0967..1602316dd4 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -391,20 +391,18 @@ App::init() */ $route = $utopia->getRoute(); Request::setRoute($route); - Request::resetFilters(); if ($route === null) { return $response->setStatusCode(404)->send('Not Found'); } $requestFormat = $request->getHeader('x-appwrite-response-format', App::getEnv('_APP_SYSTEM_RESPONSE_FORMAT', null)); - if ($requestFormat) { if (version_compare($requestFormat, '1.4.0', '<')) { - Request::addFilter(new RequestV16()); + $request->addFilter(new RequestV16()); } if (version_compare($requestFormat, '1.5.0', '<')) { - Request::addFilter(new RequestV17()); + $request->addFilter(new RequestV17()); } } @@ -514,15 +512,13 @@ App::init() /* * Response format */ - Response::resetFilters(); - $responseFormat = $request->getHeader('x-appwrite-response-format', App::getEnv('_APP_SYSTEM_RESPONSE_FORMAT', null)); if ($responseFormat) { if (version_compare($responseFormat, '1.4.0', '<')) { - Response::addFilter(new ResponseV16()); + $response->addFilter(new ResponseV16()); } if (version_compare($responseFormat, '1.5.0', '<')) { - Response::addFilter(new ResponseV17()); + $response->addFilter(new ResponseV17()); } } diff --git a/src/Appwrite/Utopia/Request.php b/src/Appwrite/Utopia/Request.php index af9b136618..3f0a196d5e 100644 --- a/src/Appwrite/Utopia/Request.php +++ b/src/Appwrite/Utopia/Request.php @@ -12,8 +12,7 @@ class Request extends UtopiaRequest /** * @var array */ - private static array $filters = []; - + private array $filters = []; private static ?Route $route = null; public function __construct(SwooleRequest $request) @@ -28,15 +27,13 @@ class Request extends UtopiaRequest { $parameters = parent::getParams(); - if (self::hasFilters() && self::hasRoute()) { + if ($this->hasFilters() && self::hasRoute()) { $method = self::getRoute()->getLabel('sdk.method', 'unknown'); $endpointIdentifier = self::getRoute()->getLabel('sdk.namespace', 'unknown') . '.' . $method; - $parameters = array_reduce( - self::getFilters(), - fn (array $carry, Filter $filter) => $filter->parse($carry, $endpointIdentifier), - $parameters - ); + foreach ($this->getFilters() as $filter) { + $parameters = $filter->parse($parameters, $endpointIdentifier); + } } return $parameters; @@ -49,9 +46,9 @@ class Request extends UtopiaRequest * * @return void */ - public static function addFilter(Filter $filter): void + public function addFilter(Filter $filter): void { - self::$filters[] = $filter; + $this->filters[] = $filter; } /** @@ -59,9 +56,9 @@ class Request extends UtopiaRequest * * @return array */ - public static function getFilters(): array + public function getFilters(): array { - return self::$filters; + return $this->filters; } /** @@ -69,9 +66,9 @@ class Request extends UtopiaRequest * * @return void */ - public static function resetFilters(): void + public function resetFilters(): void { - self::$filters = []; + $this->filters = []; } /** @@ -79,9 +76,9 @@ class Request extends UtopiaRequest * * @return bool */ - public static function hasFilters(): bool + public function hasFilters(): bool { - return !empty(self::$filters); + return !empty($this->filters); } /** diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index c570ccfb25..1c66875ec4 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -301,7 +301,7 @@ class Response extends SwooleResponse /** * @var array */ - private static $filters = []; + protected array $filters = []; /** * @var array @@ -526,7 +526,7 @@ class Response extends SwooleResponse $output = $this->output(clone $document, $model); // If filter is set, parse the output - foreach (self::$filters as $filter) { + foreach ($this->filters as $filter) { $output = $filter->parse($output, $model); } @@ -688,9 +688,9 @@ class Response extends SwooleResponse * * @return void */ - public static function addFilter(Filter $filter): void + public function addFilter(Filter $filter): void { - self::$filters[] = $filter; + $this->filters[] = $filter; } /** @@ -698,9 +698,9 @@ class Response extends SwooleResponse * * @return Filter */ - public static function getFilters(): array + public function getFilters(): array { - return self::$filters; + return $this->filters; } /** @@ -708,9 +708,9 @@ class Response extends SwooleResponse * * @return void */ - public static function resetFilters(): void + public function resetFilters(): void { - self::$filters = []; + $this->filters = []; } /** @@ -718,9 +718,9 @@ class Response extends SwooleResponse * * @return bool */ - public static function hasFilters(): bool + public function hasFilters(): bool { - return !empty(self::$filters); + return !empty($this->filters); } /**