From 71807635b369dbc11242e161c869fe93852aaaad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 27 Oct 2023 17:23:43 +0200 Subject: [PATCH] Move cookie-header logic to request --- app/controllers/general.php | 11 +--------- src/Appwrite/Utopia/Request.php | 38 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 14b074d21d..1f4a46d810 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -117,16 +117,7 @@ function router(App $utopia, Database $dbForConsole, SwooleRequest $swooleReques $path .= '?' . $query; } - $swooleHeaders = $swooleRequest->header; - - $cookieHeaders = []; - foreach ($swooleRequest->cookie as $key => $value) { - $cookieHeaders[] = "{$key}={$value}"; - } - - if (!empty($cookieHeaders)) { - $swooleHeaders['cookie'] = \implode('; ', $cookieHeaders); - } + $swooleHeaders = $request->getHeaders(); $body = \json_encode([ 'async' => false, diff --git a/src/Appwrite/Utopia/Request.php b/src/Appwrite/Utopia/Request.php index 229c9dd53d..a9eef62e06 100644 --- a/src/Appwrite/Utopia/Request.php +++ b/src/Appwrite/Utopia/Request.php @@ -95,4 +95,42 @@ class Request extends UtopiaRequest { return self::$route != null; } + + /** + * Get headers + * + * Method for getting all HTTP header parameters, including cookies. + * + * @return array + */ + public function getHeaders(): array + { + $headers = $this->generateHeaders(); + + $cookieHeaders = []; + foreach ($this->swoole->cookie as $key => $value) { + $cookieHeaders[] = "{$key}={$value}"; + } + + if (!empty($cookieHeaders)) { + $headers['cookie'] = \implode('; ', $cookieHeaders); + } + + return $headers; + } + + /** + * Get header + * + * Method for querying HTTP header parameters. If $key is not found $default value will be returned. + * + * @param string $key + * @param string $default + * @return string + */ + public function getHeader(string $key, string $default = ''): string + { + $headers = $this->getHeaders(); + return $headers[$key] ?? $default; + } }