1
0
Fork 0
mirror of synced 2024-06-26 18:20:43 +12:00

New env vars for event triggers

This commit is contained in:
Eldad Fux 2020-08-05 16:12:23 +03:00
parent a361b3d181
commit c97b61d8ae
2 changed files with 19 additions and 5 deletions

View file

@ -266,8 +266,8 @@ App::shutdown(function ($utopia, $request, $response, $project, $webhooks, $audi
/** @var Appwrite\Event\Event $functions */
/** @var bool $mode */
var_dump($functions->getParam('event'));
if (!empty($functions->getParam('event'))) {
$functions->setParam('payload', $webhooks->getParam('payload'));
$functions->trigger();
}

View file

@ -114,6 +114,7 @@ class FunctionsV1
$executionId = $this->args['executionId'];
$trigger = $this->args['trigger'];
$event = $this->args['event'];
$payload = (!empty($this->args['payload'])) ? json_encode($this->args['payload']) : '';
$database = new Database();
$database->setAdapter(new RedisAdapter(new MySQLAdapter($register), $register));
@ -162,7 +163,7 @@ class FunctionsV1
Console::success('Triggered function: '.$event);
$this->execute('event', $projectId, '', $database, $function);
$this->execute('event', $projectId, '', $database, $function, $event, $payload);
}
}
break;
@ -189,7 +190,15 @@ class FunctionsV1
}
}
public function execute(string $trigger, string $projectId, string $executionId, Database $database, Document $function)
public function execute(
string $trigger,
string $projectId,
string $executionId,
Database $database,
Document $function,
string $event = '',
string $payload = ''
)
{
global $register;
@ -235,8 +244,6 @@ class FunctionsV1
throw new Exception('Environment "'.$function->getAttribute('env', '').' is not supported');
}
var_dump($function->getAttribute('name', ''));
var_dump($function->getAttribute('vars', []));
$vars = \array_merge($function->getAttribute('vars', []), [
'APPWRITE_FUNCTION_ID' => $function->getId(),
'APPWRITE_FUNCTION_NAME' => $function->getAttribute('name', ''),
@ -246,6 +253,13 @@ class FunctionsV1
'APPWRITE_FUNCTION_ENV_VERSION' => $environment['version'],
]);
if('event' === $trigger) {
$vars = \array_merge($vars, [
'APPWRITE_FUNCTION_EVENT' => $event,
'APPWRITE_FUNCTION_EVENT_PAYLOAD' => $payload,
]);
}
\array_walk($vars, function (&$value, $key) {
$key = $this->filterEnvKey($key);
$value = \escapeshellarg((empty($value)) ? 'null' : $value);