Stream response support
This commit is contained in:
parent
11580a8a69
commit
f6ae0a05fa
6 changed files with 20 additions and 14 deletions
2
.env
2
.env
|
@ -1,6 +1,6 @@
|
|||
_APP_ENV=development
|
||||
_APP_LOCALE=en
|
||||
_APP_WORKER_PER_CORE=2
|
||||
_APP_WORKER_PER_CORE=20
|
||||
_APP_CONSOLE_WHITELIST_ROOT=disabled
|
||||
_APP_CONSOLE_WHITELIST_EMAILS=
|
||||
_APP_CONSOLE_WHITELIST_CODES=code-zero,code-one
|
||||
|
|
|
@ -1237,8 +1237,8 @@ App::post('/v1/functions/:functionId/executions')
|
|||
$execution
|
||||
->setAttribute('duration', (float)$interval->format('%s.%f'))
|
||||
->setAttribute('status', 'failed')
|
||||
->setAttribute('statusCode', $th->getCode())
|
||||
->setAttribute('errors', $th->getMessage());
|
||||
->setAttribute('statusCode', 500)
|
||||
->setAttribute('errors', $th->getMessage() . '\nError Code: ' . $th->getCode());
|
||||
Console::error($th->getMessage());
|
||||
}
|
||||
|
||||
|
|
|
@ -132,12 +132,16 @@ App::init()
|
|||
$execution = \json_decode($executionResponse, true);
|
||||
|
||||
foreach ($execution['headers'] as $header => $value) {
|
||||
if($header !== "content-length") {
|
||||
$response->setHeader($header, $value);
|
||||
}
|
||||
|
||||
$body = $execution['body'] ?? '';
|
||||
|
||||
if($execution['headers']['x-open-runtimes-encoding'] === 'base64') {
|
||||
$body = \base64_decode($body);
|
||||
}
|
||||
|
||||
return $response->setStatusCode($execution['statusCode'] ?? 200)->send($execution['body'] ?? '');
|
||||
return $response->setStatusCode($execution['statusCode'] ?? 200)->send($body);
|
||||
} else if(\count($subdomains) === 3) {
|
||||
// Deployment preview
|
||||
$deploymentId = $subdomains[0];
|
||||
|
|
|
@ -162,8 +162,8 @@ Server::setResource('execute', function () {
|
|||
$execution
|
||||
->setAttribute('duration', (float)$interval->format('%s.%f'))
|
||||
->setAttribute('status', 'failed')
|
||||
->setAttribute('statusCode', $th->getCode())
|
||||
->setAttribute('errors', $th->getMessage());
|
||||
->setAttribute('statusCode', 500)
|
||||
->setAttribute('errors', $th->getMessage() . '\nError Code: ' . $th->getCode());
|
||||
|
||||
Console::error($th->getTraceAsString());
|
||||
Console::error($th->getFile());
|
||||
|
|
|
@ -58,7 +58,7 @@ class Execution extends Model
|
|||
'type' => self::TYPE_INTEGER,
|
||||
'description' => 'The script status code.',
|
||||
'default' => 0,
|
||||
'example' => 0,
|
||||
'example' => 200,
|
||||
])
|
||||
->addRule('body', [
|
||||
'type' => self::TYPE_STRING,
|
||||
|
|
|
@ -74,7 +74,6 @@ class Executor
|
|||
) {
|
||||
$runtimeId = "$projectId-$deploymentId";
|
||||
$route = "/runtimes";
|
||||
$reqHeaders = [ 'x-opr-runtime-id' => $runtimeId ];
|
||||
$params = [
|
||||
'runtimeId' => $runtimeId,
|
||||
'source' => $source,
|
||||
|
@ -92,7 +91,7 @@ class Executor
|
|||
|
||||
$timeout = (int) App::getEnv('_APP_FUNCTIONS_BUILD_TIMEOUT', 900);
|
||||
|
||||
$response = $this->call(self::METHOD_POST, $route, $reqHeaders, $params, true, $timeout);
|
||||
$response = $this->call(self::METHOD_POST, $route, [], $params, true, $timeout);
|
||||
|
||||
$status = $response['headers']['status-code'];
|
||||
if ($status >= 400) {
|
||||
|
@ -133,7 +132,6 @@ class Executor
|
|||
) {
|
||||
$runtimeId = "$projectId-$deploymentId";
|
||||
$route = '/runtimes/' . $runtimeId . '/execution';
|
||||
$reqHeaders = [ 'x-opr-runtime-id' => $runtimeId ];
|
||||
$params = [
|
||||
'runtimeId' => $runtimeId,
|
||||
'variables' => $variables,
|
||||
|
@ -153,7 +151,7 @@ class Executor
|
|||
|
||||
$timeout = (int) App::getEnv('_APP_FUNCTIONS_BUILD_TIMEOUT', 900);
|
||||
|
||||
$response = $this->call(self::METHOD_POST, $route, $reqHeaders, $params, true, $timeout);
|
||||
$response = $this->call(self::METHOD_POST, $route, [], $params, true, $timeout);
|
||||
|
||||
$status = $response['headers']['status-code'];
|
||||
if ($status >= 400) {
|
||||
|
@ -238,6 +236,10 @@ class Executor
|
|||
$responseType = $responseHeaders['content-type'] ?? '';
|
||||
$responseStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
|
||||
\var_dump($responseBody);
|
||||
\var_dump($responseStatus);
|
||||
\var_dump($responseHeaders);
|
||||
|
||||
if ($decode) {
|
||||
switch (substr($responseType, 0, strpos($responseType, ';'))) {
|
||||
case 'application/json':
|
||||
|
|
Loading…
Reference in a new issue