1
0
Fork 0
mirror of synced 2024-06-03 03:14:50 +12:00

fix: convert filter to non-statics

This commit is contained in:
Torsten Dittmann 2024-03-07 15:41:20 +01:00
parent bcebe02eef
commit eacf7541a9
3 changed files with 27 additions and 34 deletions

View file

@ -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());
}
}

View file

@ -12,8 +12,7 @@ class Request extends UtopiaRequest
/**
* @var array<Filter>
*/
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<Filter>
*/
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);
}
/**

View file

@ -301,7 +301,7 @@ class Response extends SwooleResponse
/**
* @var array<Filter>
*/
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);
}
/**