1
0
Fork 0
mirror of synced 2024-07-04 06:00:53 +12:00

Update router for V3

This commit is contained in:
Matej Bačo 2023-02-14 14:58:13 +01:00
parent fef5082253
commit 11580a8a69
2 changed files with 46 additions and 4 deletions

View file

@ -44,6 +44,14 @@ Config::setParam('domainVerification', false);
Config::setParam('cookieDomain', 'localhost');
Config::setParam('cookieSamesite', Response::COOKIE_SAMESITE_NONE);
App::wildcard()
->inject('swooleResponse')
->action(function(SwooleResponse $swooleResponse) {
$swooleResponse->setStatusCode(404);
$swooleResponse->end('Not Found');
return;
});
App::init()
->inject('utopia')
->inject('swooleRequest')
@ -84,7 +92,10 @@ App::init()
$body = \json_encode([
'async' => false,
'data' => 'Heyy'
'body' => $swooleRequest->getContent() ?? '',
'method' => $swooleRequest->server['request_method'],
'path' => $swooleRequest->server['path_info'],
'headers' => $swooleRequest->header
]);
$headers = [
@ -102,16 +113,31 @@ App::init()
// \curl_setopt($ch, CURLOPT_HEADER, true);
\curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$executionResponse = \utf8_decode(\curl_exec($ch));
$executionResponse = \curl_exec($ch);
$statusCode = \curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = \curl_error($ch);
$errNo = \curl_errno($ch);
\curl_close($ch);
$responseBody = \json_decode($executionResponse, true)['response'];
if($errNo !== 0) {
return $response->setStatusCode(500)->send("Internal error: " . $error);
}
return $response->setStatusCode(200)->send($responseBody);
if($statusCode >= 400) {
$error = \json_decode($executionResponse, true)['message'];
return $response->setStatusCode(500)->send("Execution error: " . $error);
}
$execution = \json_decode($executionResponse, true);
foreach ($execution['headers'] as $header => $value) {
if($header !== "content-length") {
$response->setHeader($header, $value);
}
}
return $response->setStatusCode($execution['statusCode'] ?? 200)->send($execution['body'] ?? '');
} else if(\count($subdomains) === 3) {
// Deployment preview
$deploymentId = $subdomains[0];
@ -137,6 +163,10 @@ App::init()
$route = $utopia->match($request);
Request::setRoute($route);
if($route === null) {
return $response->setStatusCode(404)->send("Not Found");
}
$requestFormat = $request->getHeader('x-appwrite-response-format', App::getEnv('_APP_SYSTEM_RESPONSE_FORMAT', ''));
if ($requestFormat) {
switch ($requestFormat) {

View file

@ -576,4 +576,16 @@ class Response extends SwooleResponse
{
return self::$filter != null;
}
/**
* Set Header
*
* @param string $key
* @param string $value
* @return void
*/
public function setHeader(string $key, string $value): void
{
$this->sendHeader($key, $value);
}
}