Fix vars exception, change cachedoc usage,

This commit is contained in:
Bradley Schofield
2022-08-13 20:18:48 +01:00
parent cb87c248d5
commit 237f5264d9
4 changed files with 6 additions and 44 deletions
+2 -13
View File
@@ -321,8 +321,6 @@ App::put('/v1/functions/:functionId')
'search' => implode(' ', [$functionId, $name, $function->getAttribute('runtime')]),
])));
$dbForProject->deleteCachedDocument('functions', $function->getId());
if ($next && $schedule !== $original) {
// Async task reschedule
$functionEvent = new Func();
@@ -389,8 +387,6 @@ App::patch('/v1/functions/:functionId/deployments/:deploymentId')
'scheduleNext' => (int)$next,
])));
$dbForProject->deleteCachedDocument('functions', $function->getId());
if ($next) { // Init first schedule
$functionEvent = new Func();
$functionEvent
@@ -772,8 +768,6 @@ App::delete('/v1/functions/:functionId/deployments/:deploymentId')
])));
}
$dbForProject->deleteCachedDocument('functions', $function->getId());
$usage
->setParam('storage', $deployment->getAttribute('size', 0) * -1);
@@ -917,9 +911,7 @@ App::post('/v1/functions/:functionId/executions')
$vars = [];
$variables = $dbForProject->find('variables', [
new Query('functionInternalId', Query::TYPE_EQUAL, [$function->getInternalId()]),
], APP_LIMIT_COUNT);
$variables = $function['vars'];
foreach ($variables as $variable) {
$vars[$variable['key']] = $variable['value'];
@@ -1197,9 +1189,7 @@ App::get('/v1/functions/:functionId/variables')
throw new Exception('Function not found', 404, Exception::FUNCTION_NOT_FOUND);
}
$variables = $dbForProject->find('variables', [
new Query('functionInternalId', Query::TYPE_EQUAL, [$function->getInternalId()]),
], 5000);
$variables = $function['vars'];
$response->dynamic(new Document([
'variables' => $variables,
@@ -1325,7 +1315,6 @@ App::delete('/v1/functions/:functionId/variables/:variableId')
}
$dbForProject->deleteDocument('variables', $variable->getId());
$dbForProject->deleteCachedDocument('functions', $function->getId());
$response->noContent();
+2 -6
View File
@@ -145,9 +145,7 @@ class BuildsV1 extends Worker
$source = $deployment->getAttribute('path');
$vars = [];
$variables = $dbForProject->find('variables', [
new Query('functionInternalId', Query::TYPE_EQUAL, [$function->getInternalId()])
], 5000);
$variables = $function['vars'];
foreach ($variables as $variable) {
$vars[$variable['key']] = $variable['value'];
@@ -187,8 +185,7 @@ class BuildsV1 extends Worker
/** Set auto deploy */
if ($deployment->getAttribute('activate') === true) {
$function->setAttribute('deployment', $deployment->getId());
$function = $dbForProject->updateDocument('functions', $function->getId(), $function);
$dbForProject->deleteCachedDocument('functions', $function->getId());
$function = $dbForProject->updateDocument('functions', $function->getId(), $function);
}
/** Update function schedule */
@@ -197,7 +194,6 @@ class BuildsV1 extends Worker
$next = (empty($function->getAttribute('deployment')) && !empty($schedule)) ? $cron->getNextRunDate()->format('U') : 0;
$function->setAttribute('scheduleNext', (int)$next);
$function = $dbForProject->updateDocument('functions', $function->getId(), $function);
$dbForProject->deleteCachedDocument('functions', $function->getId());
} catch (\Throwable $th) {
$endtime = \time();
$build->setAttribute('endTime', $endtime);
+1 -3
View File
@@ -260,9 +260,7 @@ class FunctionsV1 extends Worker
$vars = [];
$variables = $dbForProject->find('variables', [
new Query('functionInternalId', Query::TYPE_EQUAL, [$function->getInternalId()]),
], APP_LIMIT_COUNT);
$variables = $function['vars'];
foreach ($variables as $variable) {
$vars[$variable['key']] = $variable['value'];
+1 -22
View File
@@ -65,7 +65,7 @@ class Func extends Model
'type' => Response::MODEL_VARIABLE,
'description' => 'Function environment variables.',
'default' => [],
'example' => new \stdClass(),
'example' => [],
'array' => true
])
->addRule('events', [
@@ -121,25 +121,4 @@ class Func extends Model
{
return Response::MODEL_FUNCTION;
}
/**
* Filter Function
*
* Automatically converts a [] default to a stdClass, this is called while grabbing the document.
*
* @param Document $document
* @return Document
*/
public function filter(Document $document): Document
{
$vars = $document->getAttribute('vars');
if ($vars instanceof Document) {
$vars = $vars->getArrayCopy();
}
if (is_array($vars) && empty($vars)) {
$document->setAttribute('vars', new stdClass());
}
return $document;
}
}