Merge pull request #758 from appwrite/feat-merge-webhooks-and-functions-events
Merged all system events
This commit is contained in:
commit
84fb5387ab
10 changed files with 136 additions and 92 deletions
|
@ -966,13 +966,13 @@ App::delete('/v1/account')
|
|||
->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->action(function ($request, $response, $user, $projectDB, $audits, $webhooks) {
|
||||
->action(function ($request, $response, $user, $projectDB, $audits, $events) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$user = $projectDB->updateDocument(\array_merge($user->getArrayCopy(), [
|
||||
|
@ -998,7 +998,7 @@ App::delete('/v1/account')
|
|||
->setParam('data', $user->getArrayCopy())
|
||||
;
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($user, Response::MODEL_USER))
|
||||
;
|
||||
|
||||
|
@ -1013,7 +1013,7 @@ App::delete('/v1/account')
|
|||
->addCookie(Auth::$cookieName, '', \time() - 3600, '/', Config::getParam('cookieDomain'), ('https' == $protocol), true, Config::getParam('cookieSamesite'))
|
||||
->noContent()
|
||||
;
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'webhooks']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'events']);
|
||||
|
||||
App::delete('/v1/account/sessions/:sessionId')
|
||||
->desc('Delete Account Session')
|
||||
|
@ -1029,13 +1029,13 @@ App::delete('/v1/account/sessions/:sessionId')
|
|||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->label('abuse-limit', 100)
|
||||
->param('sessionId', null, new UID(), 'Session unique ID. Use the string \'current\' to delete the current device session.')
|
||||
->action(function ($sessionId, $request, $response, $user, $projectDB, $audits, $webhooks) {
|
||||
->action(function ($sessionId, $request, $response, $user, $projectDB, $audits, $events) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$sessionId = ($sessionId === 'current')
|
||||
|
@ -1073,7 +1073,7 @@ App::delete('/v1/account/sessions/:sessionId')
|
|||
;
|
||||
}
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($token, Response::MODEL_SESSION))
|
||||
;
|
||||
|
||||
|
@ -1082,7 +1082,7 @@ App::delete('/v1/account/sessions/:sessionId')
|
|||
}
|
||||
|
||||
throw new Exception('Session not found', 404);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'webhooks']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'events']);
|
||||
|
||||
App::delete('/v1/account/sessions')
|
||||
->desc('Delete All Account Sessions')
|
||||
|
@ -1097,13 +1097,13 @@ App::delete('/v1/account/sessions')
|
|||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->label('abuse-limit', 100)
|
||||
->action(function ($request, $response, $user, $projectDB, $audits, $webhooks) {
|
||||
->action(function ($request, $response, $user, $projectDB, $audits, $events) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$tokens = $user->getAttribute('tokens', []);
|
||||
|
@ -1136,7 +1136,7 @@ App::delete('/v1/account/sessions')
|
|||
}
|
||||
}
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output(new Document([
|
||||
'sum' => count($tokens),
|
||||
'sessions' => $tokens
|
||||
|
@ -1144,7 +1144,7 @@ App::delete('/v1/account/sessions')
|
|||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'webhooks']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'events']);
|
||||
|
||||
App::post('/v1/account/recovery')
|
||||
->desc('Create Password Recovery')
|
||||
|
@ -1162,7 +1162,7 @@ App::post('/v1/account/recovery')
|
|||
->label('abuse-key', 'url:{url},email:{param-email}')
|
||||
->param('email', '', new Email(), 'User email.')
|
||||
->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.', false, ['clients'])
|
||||
->action(function ($email, $url, $request, $response, $projectDB, $project, $locale, $mails, $audits, $webhooks) {
|
||||
->action(function ($email, $url, $request, $response, $projectDB, $project, $locale, $mails, $audits, $events) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
|
@ -1170,7 +1170,7 @@ App::post('/v1/account/recovery')
|
|||
/** @var Utopia\Locale\Locale $locale */
|
||||
/** @var Appwrite\Event\Event $mails */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$isPreviliggedUser = Auth::isPreviliggedUser(Authorization::$roles);
|
||||
$isAppUser = Auth::isAppUser(Authorization::$roles);
|
||||
|
@ -1249,7 +1249,7 @@ App::post('/v1/account/recovery')
|
|||
->trigger();
|
||||
;
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload',
|
||||
$response->output($recovery->setAttribute('secret', $secret),
|
||||
Response::MODEL_TOKEN
|
||||
|
@ -1270,7 +1270,7 @@ App::post('/v1/account/recovery')
|
|||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||
->dynamic($recovery, Response::MODEL_TOKEN)
|
||||
;
|
||||
}, ['request', 'response', 'projectDB', 'project', 'locale', 'mails', 'audits', 'webhooks']);
|
||||
}, ['request', 'response', 'projectDB', 'project', 'locale', 'mails', 'audits', 'events']);
|
||||
|
||||
App::put('/v1/account/recovery')
|
||||
->desc('Complete Password Recovery')
|
||||
|
@ -1363,7 +1363,7 @@ App::post('/v1/account/verification')
|
|||
->label('abuse-limit', 10)
|
||||
->label('abuse-key', 'url:{url},email:{param-email}')
|
||||
->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.', false, ['clients']) // TODO add built-in confirm page
|
||||
->action(function ($url, $request, $response, $project, $user, $projectDB, $locale, $audits, $webhooks, $mails) {
|
||||
->action(function ($url, $request, $response, $project, $user, $projectDB, $locale, $audits, $events, $mails) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
|
@ -1371,7 +1371,7 @@ App::post('/v1/account/verification')
|
|||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Utopia\Locale\Locale $locale */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $mails */
|
||||
|
||||
$isPreviliggedUser = Auth::isPreviliggedUser(Authorization::$roles);
|
||||
|
@ -1440,7 +1440,7 @@ App::post('/v1/account/verification')
|
|||
->trigger()
|
||||
;
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload',
|
||||
$response->output($verification->setAttribute('secret', $verificationSecret),
|
||||
Response::MODEL_TOKEN
|
||||
|
@ -1461,7 +1461,7 @@ App::post('/v1/account/verification')
|
|||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||
->dynamic($verification, Response::MODEL_TOKEN)
|
||||
;
|
||||
}, ['request', 'response', 'project', 'user', 'projectDB', 'locale', 'audits', 'webhooks', 'mails']);
|
||||
}, ['request', 'response', 'project', 'user', 'projectDB', 'locale', 'audits', 'events', 'mails']);
|
||||
|
||||
App::put('/v1/account/verification')
|
||||
->desc('Complete Email Verification')
|
||||
|
|
|
@ -235,10 +235,10 @@ App::delete('/v1/database/collections/:collectionId')
|
|||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->param('collectionId', '', new UID(), 'Collection unique ID.')
|
||||
->action(function ($collectionId, $response, $projectDB, $webhooks, $audits, $deletes) {
|
||||
->action(function ($collectionId, $response, $projectDB, $events, $audits, $deletes) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$collection = $projectDB->getDocument($collectionId, false);
|
||||
|
@ -255,7 +255,7 @@ App::delete('/v1/database/collections/:collectionId')
|
|||
->setParam('document', $collection)
|
||||
;
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($collection, Response::MODEL_COLLECTION))
|
||||
;
|
||||
|
||||
|
@ -266,7 +266,7 @@ App::delete('/v1/database/collections/:collectionId')
|
|||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits', 'deletes']);
|
||||
}, ['response', 'projectDB', 'events', 'audits', 'deletes']);
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/documents')
|
||||
->desc('Create Document')
|
||||
|
@ -565,10 +565,10 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->param('collectionId', null, new UID(), 'Collection unique ID. You can create a new collection with validation rules using the Database service [server integration](/docs/server/database#createCollection).')
|
||||
->param('documentId', null, new UID(), 'Document unique ID.')
|
||||
->action(function ($collectionId, $documentId, $response, $projectDB, $webhooks, $audits) {
|
||||
->action(function ($collectionId, $documentId, $response, $projectDB, $events, $audits) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$collection = $projectDB->getDocument($collectionId, false);
|
||||
|
@ -592,7 +592,7 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
throw new Exception('Failed to remove document from DB', 500);
|
||||
}
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($document, Response::MODEL_ANY))
|
||||
;
|
||||
|
||||
|
@ -603,4 +603,4 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
||||
}, ['response', 'projectDB', 'events', 'audits']);
|
|
@ -534,10 +534,10 @@ App::delete('/v1/storage/files/:fileId')
|
|||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->param('fileId', '', new UID(), 'File unique ID.')
|
||||
->action(function ($fileId, $response, $projectDB, $webhooks, $audits, $usage) {
|
||||
->action(function ($fileId, $response, $projectDB, $events, $audits, $usage) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $usage */
|
||||
|
||||
|
@ -564,12 +564,12 @@ App::delete('/v1/storage/files/:fileId')
|
|||
->setParam('storage', $file->getAttribute('size', 0) * -1)
|
||||
;
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($file, Response::MODEL_FILE))
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits', 'usage']);
|
||||
}, ['response', 'projectDB', 'events', 'audits', 'usage']);
|
||||
|
||||
// App::get('/v1/storage/files/:fileId/scan')
|
||||
// ->desc('Scan Storage')
|
||||
|
|
|
@ -203,10 +203,10 @@ App::delete('/v1/teams/:teamId')
|
|||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->param('teamId', '', new UID(), 'Team unique ID.')
|
||||
->action(function ($teamId, $response, $projectDB, $webhooks) {
|
||||
->action(function ($teamId, $response, $projectDB, $events) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$team = $projectDB->getDocument($teamId);
|
||||
|
||||
|
@ -233,12 +233,12 @@ App::delete('/v1/teams/:teamId')
|
|||
throw new Exception('Failed to remove team from DB', 500);
|
||||
}
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($team, Response::MODEL_TEAM))
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhooks']);
|
||||
}, ['response', 'projectDB', 'events']);
|
||||
|
||||
App::post('/v1/teams/:teamId/memberships')
|
||||
->desc('Create Team Membership')
|
||||
|
@ -683,11 +683,11 @@ App::delete('/v1/teams/:teamId/memberships/:inviteId')
|
|||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->param('teamId', '', new UID(), 'Team unique ID.')
|
||||
->param('inviteId', '', new UID(), 'Invite unique ID.')
|
||||
->action(function ($teamId, $inviteId, $response, $projectDB, $audits, $webhooks) {
|
||||
->action(function ($teamId, $inviteId, $response, $projectDB, $audits, $events) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$membership = $projectDB->getDocument($inviteId);
|
||||
|
||||
|
@ -725,9 +725,9 @@ App::delete('/v1/teams/:teamId/memberships/:inviteId')
|
|||
->setParam('resource', 'teams/'.$teamId)
|
||||
;
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($membership, Response::MODEL_MEMBERSHIP))
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'audits', 'webhooks']);
|
||||
}, ['response', 'projectDB', 'audits', 'events']);
|
||||
|
|
|
@ -402,10 +402,10 @@ App::delete('/v1/users/:userId/sessions/:sessionId')
|
|||
->label('abuse-limit', 100)
|
||||
->param('userId', '', new UID(), 'User unique ID.')
|
||||
->param('sessionId', null, new UID(), 'User unique session ID.')
|
||||
->action(function ($userId, $sessionId, $response, $projectDB, $webhooks) {
|
||||
->action(function ($userId, $sessionId, $response, $projectDB, $events) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$user = $projectDB->getDocument($userId);
|
||||
|
||||
|
@ -421,14 +421,14 @@ App::delete('/v1/users/:userId/sessions/:sessionId')
|
|||
throw new Exception('Failed to remove token from DB', 500);
|
||||
}
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($user, Response::MODEL_USER))
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhooks']);
|
||||
}, ['response', 'projectDB', 'events']);
|
||||
|
||||
App::delete('/v1/users/:userId/sessions')
|
||||
->desc('Delete User Sessions')
|
||||
|
@ -444,10 +444,10 @@ App::delete('/v1/users/:userId/sessions')
|
|||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->label('abuse-limit', 100)
|
||||
->param('userId', '', new UID(), 'User unique ID.')
|
||||
->action(function ($userId, $response, $projectDB, $webhooks) {
|
||||
->action(function ($userId, $response, $projectDB, $events) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
|
||||
$user = $projectDB->getDocument($userId);
|
||||
|
||||
|
@ -463,12 +463,12 @@ App::delete('/v1/users/:userId/sessions')
|
|||
}
|
||||
}
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($user, Response::MODEL_USER))
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhooks']);
|
||||
}, ['response', 'projectDB', 'events']);
|
||||
|
||||
App::delete('/v1/users/:userId')
|
||||
->desc('Delete User')
|
||||
|
@ -484,10 +484,10 @@ App::delete('/v1/users/:userId')
|
|||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->label('abuse-limit', 100)
|
||||
->param('userId', '', function () {return new UID();}, 'User unique ID.')
|
||||
->action(function ($userId, $response, $projectDB, $webhooks, $deletes) {
|
||||
->action(function ($userId, $response, $projectDB, $events, $deletes) {
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $deletes */
|
||||
|
||||
$user = $projectDB->getDocument($userId);
|
||||
|
@ -519,9 +519,9 @@ App::delete('/v1/users/:userId')
|
|||
->setParam('document', $user)
|
||||
;
|
||||
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('payload', $response->output($user, Response::MODEL_USER))
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhooks', 'deletes']);
|
||||
}, ['response', 'projectDB', 'events', 'deletes']);
|
||||
|
|
|
@ -22,14 +22,14 @@ Config::setParam('domainVerification', false);
|
|||
Config::setParam('cookieDomain', 'localhost');
|
||||
Config::setParam('cookieSamesite', Response::COOKIE_SAMESITE_NONE);
|
||||
|
||||
App::init(function ($utopia, $request, $response, $console, $project, $user, $locale, $webhooks, $audits, $usage, $deletes, $clients) {
|
||||
App::init(function ($utopia, $request, $response, $console, $project, $user, $locale, $events, $audits, $usage, $deletes, $clients) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $console */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Utopia\Locale\Locale $locale */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $usage */
|
||||
/** @var Appwrite\Event\Event $deletes */
|
||||
|
@ -220,7 +220,7 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
|
|||
/*
|
||||
* Background Jobs
|
||||
*/
|
||||
$webhooks
|
||||
$events
|
||||
->setParam('projectId', $project->getId())
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', $route->getLabel('event', ''))
|
||||
|
@ -250,25 +250,33 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
|
|||
$deletes
|
||||
->setParam('projectId', $project->getId())
|
||||
;
|
||||
}, ['utopia', 'request', 'response', 'console', 'project', 'user', 'locale', 'webhooks', 'audits', 'usage', 'deletes', 'clients']);
|
||||
}, ['utopia', 'request', 'response', 'console', 'project', 'user', 'locale', 'events', 'audits', 'usage', 'deletes', 'clients']);
|
||||
|
||||
App::shutdown(function ($utopia, $request, $response, $project, $webhooks, $audits, $usage, $deletes, $mode) {
|
||||
App::shutdown(function ($utopia, $request, $response, $project, $events, $audits, $usage, $deletes, $mode) {
|
||||
/** @var Utopia\App $utopia */
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $events */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $usage */
|
||||
/** @var Appwrite\Event\Event $deletes */
|
||||
/** @var bool $mode */
|
||||
|
||||
if (!empty($webhooks->getParam('event'))) {
|
||||
if(empty($webhooks->getParam('payload'))) {
|
||||
$webhooks->setParam('payload', $response->getPayload());
|
||||
if (!empty($events->getParam('event'))) {
|
||||
if(empty($events->getParam('payload'))) {
|
||||
$events->setParam('payload', $response->getPayload());
|
||||
}
|
||||
|
||||
$webhooks->trigger();
|
||||
$events
|
||||
->setQueue('v1-webhooks')
|
||||
->setClass('WebhooksV1')
|
||||
->trigger();
|
||||
|
||||
$events
|
||||
->setQueue('v1-functions')
|
||||
->setClass('FunctionsV1')
|
||||
->trigger();
|
||||
}
|
||||
|
||||
if (!empty($audits->getParam('event'))) {
|
||||
|
@ -291,7 +299,7 @@ App::shutdown(function ($utopia, $request, $response, $project, $webhooks, $audi
|
|||
->trigger()
|
||||
;
|
||||
}
|
||||
}, ['utopia', 'request', 'response', 'project', 'webhooks', 'audits', 'usage', 'deletes', 'mode']);
|
||||
}, ['utopia', 'request', 'response', 'project', 'events', 'audits', 'usage', 'deletes', 'mode']);
|
||||
|
||||
App::options(function ($request, $response) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
|
|
34
app/init.php
34
app/init.php
|
@ -203,24 +203,6 @@ $register->set('smtp', function () {
|
|||
$register->set('geodb', function () {
|
||||
return new Reader(__DIR__.'/db/DBIP/dbip-country-lite-2020-01.mmdb');
|
||||
});
|
||||
$register->set('queue-webhooks', function () {
|
||||
return new Event('v1-webhooks', 'WebhooksV1');
|
||||
});
|
||||
$register->set('queue-audits', function () {
|
||||
return new Event('v1-audits', 'AuditsV1');
|
||||
});
|
||||
$register->set('queue-usage', function () {
|
||||
return new Event('v1-usage', 'UsageV1');
|
||||
});
|
||||
$register->set('queue-mails', function () {
|
||||
return new Event('v1-mails', 'MailsV1');
|
||||
});
|
||||
$register->set('queue-deletes', function () {
|
||||
return new Event('v1-deletes', 'DeletesV1');
|
||||
});
|
||||
$register->set('queue-functions', function () {
|
||||
return new Event('v1-functions', 'FunctionsV1');
|
||||
});
|
||||
|
||||
/*
|
||||
* Localization
|
||||
|
@ -311,28 +293,24 @@ App::setResource('locale', function() {
|
|||
});
|
||||
|
||||
// Queues
|
||||
App::setResource('webhooks', function($register) {
|
||||
return $register->get('queue-webhooks');
|
||||
App::setResource('events', function($register) {
|
||||
return new Event('', '');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('audits', function($register) {
|
||||
return $register->get('queue-audits');
|
||||
return new Event('v1-audits', 'AuditsV1');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('usage', function($register) {
|
||||
return $register->get('queue-usage');
|
||||
return new Event('v1-usage', 'UsageV1');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('mails', function($register) {
|
||||
return $register->get('queue-mails');
|
||||
return new Event('v1-mails', 'MailsV1');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('deletes', function($register) {
|
||||
return $register->get('queue-deletes');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('functions', function($register) {
|
||||
return $register->get('queue-functions');
|
||||
return new Event('v1-deletes', 'DeletesV1');
|
||||
}, ['register']);
|
||||
|
||||
// Test Mock
|
||||
|
|
|
@ -33,6 +33,42 @@ class Event
|
|||
$this->class = $class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $queue
|
||||
* return $this
|
||||
*/
|
||||
public function setQueue(string $queue): self
|
||||
{
|
||||
$this->queue = $queue;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getQueue()
|
||||
{
|
||||
return $this->queue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $class
|
||||
* return $this
|
||||
*/
|
||||
public function setClass(string $class): self
|
||||
{
|
||||
$this->class = $class;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getClass()
|
||||
{
|
||||
return $this->class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
|
|
|
@ -5,7 +5,7 @@ namespace Appwrite\Tests;
|
|||
use Appwrite\Auth\Validator\Password;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class PasswordTestTest extends TestCase
|
||||
class PasswordTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @var Password
|
||||
|
|
|
@ -32,6 +32,28 @@ class EventTest extends TestCase
|
|||
{
|
||||
}
|
||||
|
||||
public function testQueue()
|
||||
{
|
||||
$this->assertEquals($this->queue, $this->object->getQueue());
|
||||
|
||||
$this->object->setQueue('demo');
|
||||
|
||||
$this->assertEquals('demo', $this->object->getQueue());
|
||||
|
||||
$this->object->setQueue($this->queue);
|
||||
}
|
||||
|
||||
public function testClass()
|
||||
{
|
||||
$this->assertEquals('TestsV1', $this->object->getClass());
|
||||
|
||||
$this->object->setClass('TestsV2');
|
||||
|
||||
$this->assertEquals('TestsV2', $this->object->getClass());
|
||||
|
||||
$this->object->setClass('TestsV1');
|
||||
}
|
||||
|
||||
public function testParams()
|
||||
{
|
||||
$this->object
|
||||
|
|
Loading…
Reference in a new issue