appwrite/src/Appwrite/Utopia/Request.php

99 lines
2 KiB
PHP
Raw Normal View History

<?php
namespace Appwrite\Utopia;
use Appwrite\Utopia\Request\Filter;
2022-01-02 13:25:13 +00:00
use Swoole\Http\Request as SwooleRequest;
use Utopia\Route;
2022-01-02 13:25:13 +00:00
use Utopia\Swoole\Request as UtopiaRequest;
class Request extends UtopiaRequest
{
private static ?Filter $filter = null;
private static ?Route $route = null;
2022-01-02 13:25:13 +00:00
public function __construct(SwooleRequest $request)
{
parent::__construct($request);
}
/**
* @inheritdoc
*/
public function getParams(): array
{
2022-10-27 21:19:09 +00:00
$parameters = parent::getParams();
if (self::hasFilter() && self::hasRoute()) {
$endpointIdentifier = self::getRoute()->getLabel('sdk.namespace', 'unknown') . '.' . self::getRoute()->getLabel('sdk.method', 'unknown');
2022-10-27 21:19:09 +00:00
$parameters = self::getFilter()->parse($parameters, $endpointIdentifier);
}
2022-01-04 12:30:50 +00:00
2022-10-27 21:19:09 +00:00
return $parameters;
}
/**
* Function to set a response filter
*
* @param Filter|null $filter Filter the response filter to set
*
* @return void
*/
public static function setFilter(?Filter $filter): void
{
self::$filter = $filter;
}
/**
* Return the currently set filter
*
* @return Filter|null
*/
public static function getFilter(): ?Filter
{
return self::$filter;
}
/**
* Check if a filter has been set
*
* @return bool
*/
public static function hasFilter(): bool
{
return self::$filter != null;
}
/**
* Function to set a request route
*
* @param Route|null $route the request route to set
*
* @return void
*/
public static function setRoute(?Route $route): void
{
self::$route = $route;
}
/**
* Return the current route
*
* @return Route|null
*/
public static function getRoute(): ?Route
{
return self::$route;
}
/**
* Check if a route has been set
*
* @return bool
*/
public static function hasRoute(): bool
{
return self::$route != null;
}
2022-05-23 14:54:50 +00:00
}