Fixed queues var names
This commit is contained in:
parent
a68e86464b
commit
969441bf47
24
app/app.php
24
app/app.php
|
@ -36,11 +36,9 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
|
|||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Utopia\Locale\Locale $locale */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $usage */
|
||||
/** @var Appwrite\Event\Event $mail */
|
||||
/** @var Appwrite\Event\Event $deletes */
|
||||
/** @var bool $mode */
|
||||
/** @var array $clients */
|
||||
|
||||
|
@ -248,25 +246,25 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
|
|||
->setParam('response', 0)
|
||||
->setParam('storage', 0)
|
||||
;
|
||||
}, ['utopia', 'request', 'response', 'console', 'project', 'user', 'locale', 'webhook', 'audit', 'usage', 'clients']);
|
||||
}, ['utopia', 'request', 'response', 'console', 'project', 'user', 'locale', 'webhooks', 'audits', 'usage', 'clients']);
|
||||
|
||||
App::shutdown(function ($utopia, $request, $response, $project, $webhook, $audit, $usage, $deletes, $mode) {
|
||||
App::shutdown(function ($utopia, $request, $response, $project, $webhooks, $audits, $usage, $deletes, $mode) {
|
||||
/** @var Utopia\App $utopia */
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $usage */
|
||||
/** @var Appwrite\Event\Event $deletes */
|
||||
/** @var bool $mode */
|
||||
|
||||
if (!empty($webhook->getParam('event'))) {
|
||||
$webhook->trigger();
|
||||
if (!empty($webhooks->getParam('event'))) {
|
||||
$webhooks->trigger();
|
||||
}
|
||||
|
||||
if (!empty($audit->getParam('event'))) {
|
||||
$audit->trigger();
|
||||
if (!empty($audits->getParam('event'))) {
|
||||
$audits->trigger();
|
||||
}
|
||||
|
||||
if (!empty($deletes->getParam('document'))) {
|
||||
|
@ -284,7 +282,7 @@ App::shutdown(function ($utopia, $request, $response, $project, $webhook, $audit
|
|||
->trigger()
|
||||
;
|
||||
}
|
||||
}, ['utopia', 'request', 'response', 'project', 'webhook', 'audit', 'usage', 'deletes', 'mode']);
|
||||
}, ['utopia', 'request', 'response', 'project', 'webhooks', 'audits', 'usage', 'deletes', 'mode']);
|
||||
|
||||
App::options(function ($request, $response) {
|
||||
/** @var Appwrite\Utopia\Request $request */
|
||||
|
|
|
@ -54,13 +54,13 @@ App::post('/v1/account')
|
|||
->param('email', '', function () { return new Email(); }, 'User email.')
|
||||
->param('password', '', function () { return new Password(); }, 'User password. Must be between 6 to 32 chars.')
|
||||
->param('name', '', function () { return new Text(100); }, 'User name.', true)
|
||||
->action(function ($email, $password, $name, $request, $response, $project, $projectDB, $webhook, $audit) use ($oauth2Keys) {
|
||||
->action(function ($email, $password, $name, $request, $response, $project, $projectDB, $webhooks, $audits) use ($oauth2Keys) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
if ('console' === $project->getId()) {
|
||||
$whitlistEmails = $project->getAttribute('authWhitelistEmails');
|
||||
|
@ -120,14 +120,14 @@ App::post('/v1/account')
|
|||
throw new Exception('Failed saving user to DB', 500);
|
||||
}
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', [
|
||||
'name' => $name,
|
||||
'email' => $email,
|
||||
])
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.create')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
|
@ -144,7 +144,7 @@ App::post('/v1/account')
|
|||
],
|
||||
$oauth2Keys
|
||||
)), ['roles' => Authorization::getRoles()]));
|
||||
}, ['request', 'response', 'project', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['request', 'response', 'project', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::post('/v1/account/sessions')
|
||||
->desc('Create Account Session')
|
||||
|
@ -159,12 +159,12 @@ App::post('/v1/account/sessions')
|
|||
->label('abuse-key', 'url:{url},email:{param-email}')
|
||||
->param('email', '', function () { return new Email(); }, 'User email.')
|
||||
->param('password', '', function () { return new Password(); }, 'User password. Must be between 6 to 32 chars.')
|
||||
->action(function ($email, $password, $request, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($email, $password, $request, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Appwrite\Utopia\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$profile = $projectDB->getCollectionFirst([ // Get user by email address
|
||||
|
@ -176,7 +176,7 @@ App::post('/v1/account/sessions')
|
|||
]);
|
||||
|
||||
if (false == $profile || !Auth::passwordVerify($password, $profile->getAttribute('password'))) {
|
||||
$audit
|
||||
$audits
|
||||
//->setParam('userId', $profile->getId())
|
||||
->setParam('event', 'account.sesssions.failed')
|
||||
->setParam('resource', 'users/'.($profile ? $profile->getId() : ''))
|
||||
|
@ -213,14 +213,14 @@ App::post('/v1/account/sessions')
|
|||
throw new Exception('Failed saving user to DB', 500);
|
||||
}
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', [
|
||||
'name' => $profile->getAttribute('name', ''),
|
||||
'email' => $profile->getAttribute('email', ''),
|
||||
])
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $profile->getId())
|
||||
->setParam('event', 'account.sessions.create')
|
||||
->setParam('resource', 'users/'.$profile->getId())
|
||||
|
@ -240,7 +240,7 @@ App::post('/v1/account/sessions')
|
|||
|
||||
$response->dynamic($session, Response::MODEL_SESSION);
|
||||
;
|
||||
}, ['request', 'response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['request', 'response', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::get('/v1/account/sessions/oauth2/:provider')
|
||||
->desc('Create Account Session with OAuth2')
|
||||
|
@ -356,13 +356,13 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
|
|||
->param('provider', '', function () { return new WhiteList(\array_keys(Config::getParam('providers'))); }, 'OAuth2 provider.')
|
||||
->param('code', '', function () { return new Text(1024); }, 'OAuth2 code.')
|
||||
->param('state', '', function () { return new Text(2048); }, 'OAuth2 state params.', true)
|
||||
->action(function ($provider, $code, $state, $request, $response, $project, $user, $projectDB, $audit) use ($oauthDefaultSuccess) {
|
||||
->action(function ($provider, $code, $state, $request, $response, $project, $user, $projectDB, $audits) use ($oauthDefaultSuccess) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$callback = $protocol.'://'.$request->getHostname().'/v1/account/sessions/oauth2/callback/'.$provider.'/'.$project->getId();
|
||||
|
@ -509,7 +509,7 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
|
|||
throw new Exception('Failed saving user to DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.sessions.create')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
|
@ -541,7 +541,7 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
|
|||
->addCookie(Auth::$cookieName, Auth::encodeSession($user->getId(), $secret), $expiry, '/', Config::getParam('cookieDomain'), ('https' == $protocol), true, Config::getParam('cookieSamesite'))
|
||||
->redirect($state['success'])
|
||||
;
|
||||
}, ['request', 'response', 'project', 'user', 'projectDB', 'audit']);
|
||||
}, ['request', 'response', 'project', 'user', 'projectDB', 'audits']);
|
||||
|
||||
App::get('/v1/account')
|
||||
->desc('Get Account')
|
||||
|
@ -739,11 +739,11 @@ App::patch('/v1/account/name')
|
|||
->label('sdk.method', 'updateName')
|
||||
->label('sdk.description', '/docs/references/account/update-name.md')
|
||||
->param('name', '', function () { return new Text(100); }, 'User name.')
|
||||
->action(function ($name, $response, $user, $projectDB, $audit) use ($oauth2Keys) {
|
||||
->action(function ($name, $response, $user, $projectDB, $audits) use ($oauth2Keys) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$user = $projectDB->updateDocument(\array_merge($user->getArrayCopy(), [
|
||||
'name' => $name,
|
||||
|
@ -753,7 +753,7 @@ App::patch('/v1/account/name')
|
|||
throw new Exception('Failed saving user to DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.update.name')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
|
@ -768,7 +768,7 @@ App::patch('/v1/account/name')
|
|||
],
|
||||
$oauth2Keys
|
||||
)), ['roles' => Authorization::getRoles()]));
|
||||
}, ['response', 'user', 'projectDB', 'audit']);
|
||||
}, ['response', 'user', 'projectDB', 'audits']);
|
||||
|
||||
App::patch('/v1/account/password')
|
||||
->desc('Update Account Password')
|
||||
|
@ -781,11 +781,11 @@ App::patch('/v1/account/password')
|
|||
->label('sdk.description', '/docs/references/account/update-password.md')
|
||||
->param('password', '', function () { return new Password(); }, 'New user password. Must be between 6 to 32 chars.')
|
||||
->param('oldPassword', '', function () { return new Password(); }, 'Old user password. Must be between 6 to 32 chars.')
|
||||
->action(function ($password, $oldPassword, $response, $user, $projectDB, $audit) use ($oauth2Keys) {
|
||||
->action(function ($password, $oldPassword, $response, $user, $projectDB, $audits) use ($oauth2Keys) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
if (!Auth::passwordVerify($oldPassword, $user->getAttribute('password'))) { // Double check user password
|
||||
throw new Exception('Invalid credentials', 401);
|
||||
|
@ -799,7 +799,7 @@ App::patch('/v1/account/password')
|
|||
throw new Exception('Failed saving user to DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.update.password')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
|
@ -814,7 +814,7 @@ App::patch('/v1/account/password')
|
|||
],
|
||||
$oauth2Keys
|
||||
)), ['roles' => Authorization::getRoles()]));
|
||||
}, ['response', 'user', 'projectDB', 'audit']);
|
||||
}, ['response', 'user', 'projectDB', 'audits']);
|
||||
|
||||
App::patch('/v1/account/email')
|
||||
->desc('Update Account Email')
|
||||
|
@ -827,11 +827,11 @@ App::patch('/v1/account/email')
|
|||
->label('sdk.description', '/docs/references/account/update-email.md')
|
||||
->param('email', '', function () { return new Email(); }, 'User email.')
|
||||
->param('password', '', function () { return new Password(); }, 'User password. Must be between 6 to 32 chars.')
|
||||
->action(function ($email, $password, $response, $user, $projectDB, $audit) use ($oauth2Keys) {
|
||||
->action(function ($email, $password, $response, $user, $projectDB, $audits) use ($oauth2Keys) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
if (!Auth::passwordVerify($password, $user->getAttribute('password'))) { // Double check user password
|
||||
throw new Exception('Invalid credentials', 401);
|
||||
|
@ -860,7 +860,7 @@ App::patch('/v1/account/email')
|
|||
throw new Exception('Failed saving user to DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.update.email')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
|
@ -875,7 +875,7 @@ App::patch('/v1/account/email')
|
|||
],
|
||||
$oauth2Keys
|
||||
)), ['roles' => Authorization::getRoles()]));
|
||||
}, ['response', 'user', 'projectDB', 'audit']);
|
||||
}, ['response', 'user', 'projectDB', 'audits']);
|
||||
|
||||
App::patch('/v1/account/prefs')
|
||||
->desc('Update Account Preferences')
|
||||
|
@ -887,11 +887,11 @@ App::patch('/v1/account/prefs')
|
|||
->label('sdk.method', 'updatePrefs')
|
||||
->param('prefs', '', function () { return new Assoc();}, 'Prefs key-value JSON object.')
|
||||
->label('sdk.description', '/docs/references/account/update-prefs.md')
|
||||
->action(function ($prefs, $response, $user, $projectDB, $audit) {
|
||||
->action(function ($prefs, $response, $user, $projectDB, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$old = \json_decode($user->getAttribute('prefs', '{}'), true);
|
||||
$old = ($old) ? $old : [];
|
||||
|
@ -904,7 +904,7 @@ App::patch('/v1/account/prefs')
|
|||
throw new Exception('Failed saving user to DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'account.update.prefs')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
;
|
||||
|
@ -919,7 +919,7 @@ App::patch('/v1/account/prefs')
|
|||
}
|
||||
|
||||
$response->json($prefs);
|
||||
}, ['response', 'user', 'projectDB', 'audit']);
|
||||
}, ['response', 'user', 'projectDB', 'audits']);
|
||||
|
||||
App::delete('/v1/account')
|
||||
->desc('Delete Account')
|
||||
|
@ -930,13 +930,13 @@ App::delete('/v1/account')
|
|||
->label('sdk.namespace', 'account')
|
||||
->label('sdk.method', 'delete')
|
||||
->label('sdk.description', '/docs/references/account/delete.md')
|
||||
->action(function ($request, $response, $user, $projectDB, $audit, $webhook) {
|
||||
->action(function ($request, $response, $user, $projectDB, $audits, $webhooks) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$user = $projectDB->updateDocument(\array_merge($user->getArrayCopy(), [
|
||||
|
@ -955,14 +955,14 @@ App::delete('/v1/account')
|
|||
* * Memberships
|
||||
*/
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.delete')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
->setParam('data', $user->getArrayCopy())
|
||||
;
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', [
|
||||
'name' => $user->getAttribute('name', ''),
|
||||
'email' => $user->getAttribute('email', ''),
|
||||
|
@ -980,7 +980,7 @@ App::delete('/v1/account')
|
|||
->addCookie(Auth::$cookieName, '', \time() - 3600, '/', Config::getParam('cookieDomain'), ('https' == $protocol), true, Config::getParam('cookieSamesite'))
|
||||
->noContent()
|
||||
;
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audit', 'webhook']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'webhooks']);
|
||||
|
||||
App::delete('/v1/account/sessions/:sessionId')
|
||||
->desc('Delete Account Session')
|
||||
|
@ -993,13 +993,13 @@ App::delete('/v1/account/sessions/:sessionId')
|
|||
->label('sdk.description', '/docs/references/account/delete-session.md')
|
||||
->label('abuse-limit', 100)
|
||||
->param('sessionId', null, function () { return new UID(); }, 'Session unique ID. Use the string \'current\' to delete the current device session.')
|
||||
->action(function ($sessionId, $request, $response, $user, $projectDB, $audit, $webhook) {
|
||||
->action(function ($sessionId, $request, $response, $user, $projectDB, $audits, $webhooks) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$sessionId = ($sessionId === 'current')
|
||||
|
@ -1014,13 +1014,13 @@ App::delete('/v1/account/sessions/:sessionId')
|
|||
throw new Exception('Failed to remove token from DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.sessions.delete')
|
||||
->setParam('resource', '/user/'.$user->getId())
|
||||
;
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', [
|
||||
'name' => $user->getAttribute('name', ''),
|
||||
'email' => $user->getAttribute('email', ''),
|
||||
|
@ -1045,7 +1045,7 @@ App::delete('/v1/account/sessions/:sessionId')
|
|||
}
|
||||
|
||||
throw new Exception('Session not found', 404);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audit', 'webhook']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'webhooks']);
|
||||
|
||||
App::delete('/v1/account/sessions')
|
||||
->desc('Delete All Account Sessions')
|
||||
|
@ -1057,13 +1057,13 @@ App::delete('/v1/account/sessions')
|
|||
->label('sdk.method', 'deleteSessions')
|
||||
->label('sdk.description', '/docs/references/account/delete-sessions.md')
|
||||
->label('abuse-limit', 100)
|
||||
->action(function ($request, $response, $user, $projectDB, $audit, $webhook) {
|
||||
->action(function ($request, $response, $user, $projectDB, $audits, $webhooks) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$tokens = $user->getAttribute('tokens', []);
|
||||
|
@ -1073,13 +1073,13 @@ App::delete('/v1/account/sessions')
|
|||
throw new Exception('Failed to remove token from DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.sessions.delete')
|
||||
->setParam('resource', '/user/'.$user->getId())
|
||||
;
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', [
|
||||
'name' => $user->getAttribute('name', ''),
|
||||
'email' => $user->getAttribute('email', ''),
|
||||
|
@ -1101,7 +1101,7 @@ App::delete('/v1/account/sessions')
|
|||
}
|
||||
|
||||
$response->noContent();
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audit', 'webhook']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits', 'webhooks']);
|
||||
|
||||
App::post('/v1/account/recovery')
|
||||
->desc('Create Password Recovery')
|
||||
|
@ -1115,14 +1115,14 @@ App::post('/v1/account/recovery')
|
|||
->label('abuse-key', 'url:{url},email:{param-email}')
|
||||
->param('email', '', function () { return 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, $mail, $audit) {
|
||||
->action(function ($email, $url, $request, $response, $projectDB, $project, $locale, $mails, $audits) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Utopia\Locale\Locale $locale */
|
||||
/** @var Appwrite\Event\Event $mail */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $mails */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$profile = $projectDB->getCollectionFirst([ // Get user by email address
|
||||
'limit' => 1,
|
||||
|
@ -1187,7 +1187,7 @@ App::post('/v1/account/recovery')
|
|||
->setParam('{{text-cta}}', '#ffffff')
|
||||
;
|
||||
|
||||
$mail
|
||||
$mails
|
||||
->setParam('event', 'account.recovery.create')
|
||||
->setParam('recipient', $profile->getAttribute('email', ''))
|
||||
->setParam('name', $profile->getAttribute('name', ''))
|
||||
|
@ -1196,7 +1196,7 @@ App::post('/v1/account/recovery')
|
|||
->trigger();
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $profile->getId())
|
||||
->setParam('event', 'account.recovery.create')
|
||||
->setParam('resource', 'users/'.$profile->getId())
|
||||
|
@ -1206,7 +1206,7 @@ App::post('/v1/account/recovery')
|
|||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||
->json($recovery->getArrayCopy(['$id', 'type', 'expire']))
|
||||
;
|
||||
}, ['request', 'response', 'projectDB', 'project', 'locale', 'mail', 'audit']);
|
||||
}, ['request', 'response', 'projectDB', 'project', 'locale', 'mails', 'audits']);
|
||||
|
||||
App::put('/v1/account/recovery')
|
||||
->desc('Complete Password Recovery')
|
||||
|
@ -1222,10 +1222,10 @@ App::put('/v1/account/recovery')
|
|||
->param('secret', '', function () { return new Text(256); }, 'Valid reset token.')
|
||||
->param('password', '', function () { return new Password(); }, 'New password. Must be between 6 to 32 chars.')
|
||||
->param('passwordAgain', '', function () {return new Password(); }, 'New password again. Must be between 6 to 32 chars.')
|
||||
->action(function ($userId, $secret, $password, $passwordAgain, $response, $projectDB, $audit) {
|
||||
->action(function ($userId, $secret, $password, $passwordAgain, $response, $projectDB, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
if ($password !== $passwordAgain) {
|
||||
throw new Exception('Passwords must match', 400);
|
||||
|
@ -1269,7 +1269,7 @@ App::put('/v1/account/recovery')
|
|||
throw new Exception('Failed to remove recovery from DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $profile->getId())
|
||||
->setParam('event', 'account.recovery.update')
|
||||
->setParam('resource', 'users/'.$profile->getId())
|
||||
|
@ -1278,7 +1278,7 @@ App::put('/v1/account/recovery')
|
|||
$recovery = $profile->search('$id', $recovery, $profile->getAttribute('tokens', []));
|
||||
|
||||
$response->json($recovery->getArrayCopy(['$id', 'type', 'expire']));
|
||||
}, ['response', 'projectDB', 'audit']);
|
||||
}, ['response', 'projectDB', 'audits']);
|
||||
|
||||
App::post('/v1/account/verification')
|
||||
->desc('Create Email Verification')
|
||||
|
@ -1291,15 +1291,15 @@ 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, $audit, $mail) {
|
||||
->action(function ($url, $request, $response, $project, $user, $projectDB, $locale, $audits, $mails) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Utopia\Locale\Locale $locale */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $mail */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $mails */
|
||||
|
||||
$verificationSecret = Auth::tokenGenerator();
|
||||
|
||||
|
@ -1353,7 +1353,7 @@ App::post('/v1/account/verification')
|
|||
->setParam('{{text-cta}}', '#ffffff')
|
||||
;
|
||||
|
||||
$mail
|
||||
$mails
|
||||
->setParam('event', 'account.verification.create')
|
||||
->setParam('recipient', $user->getAttribute('email'))
|
||||
->setParam('name', $user->getAttribute('name'))
|
||||
|
@ -1362,7 +1362,7 @@ App::post('/v1/account/verification')
|
|||
->trigger()
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'account.verification.create')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
|
@ -1372,7 +1372,7 @@ App::post('/v1/account/verification')
|
|||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||
->json($verification->getArrayCopy(['$id', 'type', 'expire']))
|
||||
;
|
||||
}, ['request', 'response', 'project', 'user', 'projectDB', 'locale', 'audit', 'mail']);
|
||||
}, ['request', 'response', 'project', 'user', 'projectDB', 'locale', 'audits', 'mails']);
|
||||
|
||||
App::put('/v1/account/verification')
|
||||
->desc('Complete Email Verification')
|
||||
|
@ -1386,11 +1386,11 @@ App::put('/v1/account/verification')
|
|||
->label('abuse-key', 'url:{url},userId:{param-userId}')
|
||||
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
|
||||
->param('secret', '', function () { return new Text(256); }, 'Valid verification token.')
|
||||
->action(function ($userId, $secret, $response, $user, $projectDB, $audit) {
|
||||
->action(function ($userId, $secret, $response, $user, $projectDB, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$profile = $projectDB->getCollectionFirst([ // Get user by email address
|
||||
'limit' => 1,
|
||||
|
@ -1428,7 +1428,7 @@ App::put('/v1/account/verification')
|
|||
throw new Exception('Failed to remove verification from DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $profile->getId())
|
||||
->setParam('event', 'account.verification.update')
|
||||
->setParam('resource', 'users/'.$user->getId())
|
||||
|
@ -1437,4 +1437,4 @@ App::put('/v1/account/verification')
|
|||
$verification = $profile->search('$id', $verification, $profile->getAttribute('tokens', []));
|
||||
|
||||
$response->json($verification->getArrayCopy(['$id', 'type', 'expire']));
|
||||
}, ['response', 'user', 'projectDB', 'audit']);
|
||||
}, ['response', 'user', 'projectDB', 'audits']);
|
|
@ -34,11 +34,11 @@ App::post('/v1/database/collections')
|
|||
->param('read', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->param('write', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->param('rules', [], function ($projectDB) { return new ArrayList(new Collection($projectDB, [Database::SYSTEM_COLLECTION_RULES], ['$collection' => Database::SYSTEM_COLLECTION_RULES, '$permissions' => ['read' => [], 'write' => []]])); }, 'Array of [rule objects](/docs/rules). Each rule define a collection field name, data type and validation.', false, ['projectDB'])
|
||||
->action(function ($name, $read, $write, $rules, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($name, $read, $write, $rules, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$parsedRules = [];
|
||||
|
||||
|
@ -79,11 +79,11 @@ App::post('/v1/database/collections')
|
|||
|
||||
$data = $data->getArrayCopy();
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $data)
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'database.collections.create')
|
||||
->setParam('resource', 'database/collection/'.$data['$id'])
|
||||
->setParam('data', $data)
|
||||
|
@ -96,7 +96,7 @@ App::post('/v1/database/collections')
|
|||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||
->json($data)
|
||||
;
|
||||
}, ['response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::get('/v1/database/collections')
|
||||
->desc('List Collections')
|
||||
|
@ -230,11 +230,11 @@ App::put('/v1/database/collections/:collectionId')
|
|||
->param('read', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions(/docs/permissions) and get a full list of available permissions.')
|
||||
->param('write', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->param('rules', [], function ($projectDB) { return new ArrayList(new Collection($projectDB, [Database::SYSTEM_COLLECTION_RULES], ['$collection' => Database::SYSTEM_COLLECTION_RULES, '$permissions' => ['read' => [], 'write' => []]])); }, 'Array of [rule objects](/docs/rules). Each rule define a collection field name, data type and validation.', true, ['projectDB'])
|
||||
->action(function ($collectionId, $name, $read, $write, $rules, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($collectionId, $name, $read, $write, $rules, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$collection = $projectDB->getDocument($collectionId, false);
|
||||
|
||||
|
@ -279,18 +279,18 @@ App::put('/v1/database/collections/:collectionId')
|
|||
|
||||
$data = $collection->getArrayCopy();
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $data)
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'database.collections.update')
|
||||
->setParam('resource', 'database/collections/'.$data['$id'])
|
||||
->setParam('data', $data)
|
||||
;
|
||||
|
||||
$response->json($collection->getArrayCopy());
|
||||
}, ['response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::delete('/v1/database/collections/:collectionId')
|
||||
->desc('Delete Collection')
|
||||
|
@ -302,11 +302,11 @@ App::delete('/v1/database/collections/:collectionId')
|
|||
->label('sdk.method', 'deleteCollection')
|
||||
->label('sdk.description', '/docs/references/database/delete-collection.md')
|
||||
->param('collectionId', '', function () { return new UID(); }, 'Collection unique ID.')
|
||||
->action(function ($collectionId, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($collectionId, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$collection = $projectDB->getDocument($collectionId, false);
|
||||
|
||||
|
@ -320,18 +320,18 @@ App::delete('/v1/database/collections/:collectionId')
|
|||
|
||||
$data = $collection->getArrayCopy();
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $data)
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'database.collections.delete')
|
||||
->setParam('resource', 'database/collections/'.$data['$id'])
|
||||
->setParam('data', $data)
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::post('/v1/database/collections/:collectionId/documents')
|
||||
->desc('Create Document')
|
||||
|
@ -349,11 +349,11 @@ App::post('/v1/database/collections/:collectionId/documents')
|
|||
->param('parentDocument', '', function () { return new UID(); }, 'Parent document unique ID. Use when you want your new document to be a child of a parent document.', true)
|
||||
->param('parentProperty', '', function () { return new Key(); }, 'Parent document property name. Use when you want your new document to be a child of a parent document.', true)
|
||||
->param('parentPropertyType', Document::SET_TYPE_ASSIGN, function () { return new WhiteList([Document::SET_TYPE_ASSIGN, Document::SET_TYPE_APPEND, Document::SET_TYPE_PREPEND]); }, 'Parent document property connection type. You can set this value to **assign**, **append** or **prepend**, default value is assign. Use when you want your new document to be a child of a parent document.', true)
|
||||
->action(function ($collectionId, $data, $read, $write, $parentDocument, $parentProperty, $parentPropertyType, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($collectionId, $data, $read, $write, $parentDocument, $parentProperty, $parentPropertyType, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$data = (\is_string($data)) ? \json_decode($data, true) : $data; // Cast to JSON array
|
||||
|
||||
|
@ -437,11 +437,11 @@ App::post('/v1/database/collections/:collectionId/documents')
|
|||
|
||||
$data = $data->getArrayCopy();
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $data)
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'database.documents.create')
|
||||
->setParam('resource', 'database/document/'.$data['$id'])
|
||||
->setParam('data', $data)
|
||||
|
@ -454,7 +454,7 @@ App::post('/v1/database/collections/:collectionId/documents')
|
|||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||
->json($data)
|
||||
;
|
||||
}, ['response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::get('/v1/database/collections/:collectionId/documents')
|
||||
->desc('List Documents')
|
||||
|
@ -579,11 +579,11 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
->param('data', [], function () { return new JSON(); }, 'Document data as JSON object.')
|
||||
->param('read', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->param('write', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->action(function ($collectionId, $documentId, $data, $read, $write, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($collectionId, $documentId, $data, $read, $write, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$collection = $projectDB->getDocument($collectionId, false);
|
||||
$document = $projectDB->getDocument($documentId, false);
|
||||
|
@ -632,11 +632,11 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
|
||||
$data = $data->getArrayCopy();
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $data)
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'database.documents.update')
|
||||
->setParam('resource', 'database/document/'.$data['$id'])
|
||||
->setParam('data', $data)
|
||||
|
@ -646,7 +646,7 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
* View
|
||||
*/
|
||||
$response->json($data);
|
||||
}, ['response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
||||
->desc('Delete Document')
|
||||
|
@ -659,11 +659,11 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
->label('sdk.description', '/docs/references/database/delete-document.md')
|
||||
->param('collectionId', null, function () { return 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, function () { return new UID(); }, 'Document unique ID.')
|
||||
->action(function ($collectionId, $documentId, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($collectionId, $documentId, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$collection = $projectDB->getDocument($collectionId, false);
|
||||
$document = $projectDB->getDocument($documentId, false);
|
||||
|
@ -688,15 +688,15 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
|
|||
|
||||
$data = $document->getArrayCopy();
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $data)
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'database.documents.delete')
|
||||
->setParam('resource', 'database/document/'.$data['$id'])
|
||||
->setParam('data', $data) // Audit document in case of malicious or disastrous action
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
|
@ -41,13 +41,13 @@ App::post('/v1/storage/files')
|
|||
->param('file', [], function () { return new File(); }, 'Binary File.', false)
|
||||
->param('read', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->param('write', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->action(function ($file, $read, $write, $request, $response, $user, $projectDB, $webhook, $audit, $usage) {
|
||||
->action(function ($file, $read, $write, $request, $response, $user, $projectDB, $webhooks, $audits, $usage) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $usage */
|
||||
|
||||
$file = $request->getFiles('file');
|
||||
|
@ -150,11 +150,11 @@ App::post('/v1/storage/files')
|
|||
throw new Exception('Failed saving file to DB', 500);
|
||||
}
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $file->getArrayCopy())
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'storage.files.create')
|
||||
->setParam('resource', 'storage/files/'.$file->getId())
|
||||
;
|
||||
|
@ -167,7 +167,7 @@ App::post('/v1/storage/files')
|
|||
->setStatusCode(Response::STATUS_CODE_CREATED)
|
||||
->json($file->getArrayCopy())
|
||||
;
|
||||
}, ['request', 'response', 'user', 'projectDB', 'webhook', 'audit', 'usage']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'webhooks', 'audits', 'usage']);
|
||||
|
||||
App::get('/v1/storage/files')
|
||||
->desc('List Files')
|
||||
|
@ -492,11 +492,11 @@ App::put('/v1/storage/files/:fileId')
|
|||
->param('fileId', '', function () { return new UID(); }, 'File unique ID.')
|
||||
->param('read', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with read permissions. By default no user is granted with any read permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->param('write', [], function () { return new ArrayList(new Text(64)); }, 'An array of strings with write permissions. By default no user is granted with any write permissions. [learn more about permissions](/docs/permissions) and get a full list of available permissions.')
|
||||
->action(function ($fileId, $read, $write, $response, $projectDB, $webhook, $audit) {
|
||||
->action(function ($fileId, $read, $write, $response, $projectDB, $webhooks, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$file = $projectDB->getDocument($fileId);
|
||||
|
||||
|
@ -516,17 +516,17 @@ App::put('/v1/storage/files/:fileId')
|
|||
throw new Exception('Failed saving file to DB', 500);
|
||||
}
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $file->getArrayCopy())
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'storage.files.update')
|
||||
->setParam('resource', 'storage/files/'.$file->getId())
|
||||
;
|
||||
|
||||
$response->json($file->getArrayCopy());
|
||||
}, ['response', 'projectDB', 'webhook', 'audit']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits']);
|
||||
|
||||
App::delete('/v1/storage/files/:fileId')
|
||||
->desc('Delete File')
|
||||
|
@ -538,11 +538,11 @@ App::delete('/v1/storage/files/:fileId')
|
|||
->label('sdk.method', 'deleteFile')
|
||||
->label('sdk.description', '/docs/references/storage/delete-file.md')
|
||||
->param('fileId', '', function () { return new UID(); }, 'File unique ID.')
|
||||
->action(function ($fileId, $response, $projectDB, $webhook, $audit, $usage) {
|
||||
->action(function ($fileId, $response, $projectDB, $webhooks, $audits, $usage) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $webhook */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $webhooks */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $usage */
|
||||
|
||||
$file = $projectDB->getDocument($fileId);
|
||||
|
@ -559,11 +559,11 @@ App::delete('/v1/storage/files/:fileId')
|
|||
}
|
||||
}
|
||||
|
||||
$webhook
|
||||
$webhooks
|
||||
->setParam('payload', $file->getArrayCopy())
|
||||
;
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('event', 'storage.files.delete')
|
||||
->setParam('resource', 'storage/files/'.$file->getId())
|
||||
;
|
||||
|
@ -573,7 +573,7 @@ App::delete('/v1/storage/files/:fileId')
|
|||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'webhook', 'audit', 'usage']);
|
||||
}, ['response', 'projectDB', 'webhooks', 'audits', 'usage']);
|
||||
|
||||
// App::get('/v1/storage/files/:fileId/scan')
|
||||
// ->desc('Scan Storage')
|
||||
|
|
|
@ -223,13 +223,13 @@ App::post('/v1/teams/:teamId/memberships')
|
|||
->param('name', '', function () { return new Text(100); }, 'New team member name.', true)
|
||||
->param('roles', [], function () { return new ArrayList(new Text(128)); }, 'Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](/docs/permissions).')
|
||||
->param('url', '', function ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the invitation 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 our own built-in confirm page
|
||||
->action(function ($teamId, $email, $name, $roles, $url, $response, $project, $user, $projectDB, $locale, $audit, $mail, $mode) {
|
||||
->action(function ($teamId, $email, $name, $roles, $url, $response, $project, $user, $projectDB, $locale, $audits, $mails, $mode) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $project */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $mail */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
/** @var Appwrite\Event\Event $mails */
|
||||
/** @var bool $mode */
|
||||
|
||||
$name = (empty($name)) ? $email : $name;
|
||||
|
@ -359,7 +359,7 @@ App::post('/v1/teams/:teamId/memberships')
|
|||
;
|
||||
|
||||
if (APP_MODE_ADMIN !== $mode) { // No need in comfirmation when in admin mode
|
||||
$mail
|
||||
$mails
|
||||
->setParam('event', 'teams.membership.create')
|
||||
->setParam('recipient', $email)
|
||||
->setParam('name', $name)
|
||||
|
@ -369,7 +369,7 @@ App::post('/v1/teams/:teamId/memberships')
|
|||
;
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $invitee->getId())
|
||||
->setParam('event', 'teams.membership.create')
|
||||
->setParam('resource', 'teams/'.$teamId)
|
||||
|
@ -390,7 +390,7 @@ App::post('/v1/teams/:teamId/memberships')
|
|||
'name' => $name,
|
||||
]))
|
||||
;
|
||||
}, ['response', 'project', 'user', 'projectDB', 'locale', 'audit', 'mail', 'mode']);
|
||||
}, ['response', 'project', 'user', 'projectDB', 'locale', 'audits', 'mails', 'mode']);
|
||||
|
||||
App::get('/v1/teams/:teamId/memberships')
|
||||
->desc('Get Team Memberships')
|
||||
|
@ -463,12 +463,12 @@ App::patch('/v1/teams/:teamId/memberships/:inviteId/status')
|
|||
->param('inviteId', '', function () { return new UID(); }, 'Invite unique ID.')
|
||||
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
|
||||
->param('secret', '', function () { return new Text(256); }, 'Secret key.')
|
||||
->action(function ($teamId, $inviteId, $userId, $secret, $request, $response, $user, $projectDB, $audit) {
|
||||
->action(function ($teamId, $inviteId, $userId, $secret, $request, $response, $user, $projectDB, $audits) {
|
||||
/** @var Utopia\Request $request */
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Document $user */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$protocol = $request->getProtocol();
|
||||
$membership = $projectDB->getDocument($inviteId);
|
||||
|
@ -557,7 +557,7 @@ App::patch('/v1/teams/:teamId/memberships/:inviteId/status')
|
|||
throw new Exception('Failed saving team to DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $user->getId())
|
||||
->setParam('event', 'teams.membership.update')
|
||||
->setParam('resource', 'teams/'.$teamId)
|
||||
|
@ -579,7 +579,7 @@ App::patch('/v1/teams/:teamId/memberships/:inviteId/status')
|
|||
'name' => $user->getAttribute('name'),
|
||||
])), Response::MODEL_MEMBERSHIP);
|
||||
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audit']);
|
||||
}, ['request', 'response', 'user', 'projectDB', 'audits']);
|
||||
|
||||
App::delete('/v1/teams/:teamId/memberships/:inviteId')
|
||||
->desc('Delete Team Membership')
|
||||
|
@ -591,10 +591,10 @@ App::delete('/v1/teams/:teamId/memberships/:inviteId')
|
|||
->label('sdk.description', '/docs/references/teams/delete-team-membership.md')
|
||||
->param('teamId', '', function () { return new UID(); }, 'Team unique ID.')
|
||||
->param('inviteId', '', function () { return new UID(); }, 'Invite unique ID.')
|
||||
->action(function ($teamId, $inviteId, $response, $projectDB, $audit) {
|
||||
->action(function ($teamId, $inviteId, $response, $projectDB, $audits) {
|
||||
/** @var Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
/** @var Appwrite\Event\Event $audit */
|
||||
/** @var Appwrite\Event\Event $audits */
|
||||
|
||||
$membership = $projectDB->getDocument($inviteId);
|
||||
|
||||
|
@ -626,11 +626,11 @@ App::delete('/v1/teams/:teamId/memberships/:inviteId')
|
|||
throw new Exception('Failed saving team to DB', 500);
|
||||
}
|
||||
|
||||
$audit
|
||||
$audits
|
||||
->setParam('userId', $membership->getAttribute('userId'))
|
||||
->setParam('event', 'teams.membership.delete')
|
||||
->setParam('resource', 'teams/'.$teamId)
|
||||
;
|
||||
|
||||
$response->noContent();
|
||||
}, ['response', 'projectDB', 'audit']);
|
||||
}, ['response', 'projectDB', 'audits']);
|
||||
|
|
14
app/init.php
14
app/init.php
|
@ -157,10 +157,10 @@ $register->set('smtp', function () {
|
|||
|
||||
return $mail;
|
||||
});
|
||||
$register->set('queue-webhook', function () {
|
||||
$register->set('queue-webhooks', function () {
|
||||
return new Event('v1-webhooks', 'WebhooksV1');
|
||||
});
|
||||
$register->set('queue-audit', function () {
|
||||
$register->set('queue-audits', function () {
|
||||
return new Event('v1-audits', 'AuditsV1');
|
||||
});
|
||||
$register->set('queue-usage', function () {
|
||||
|
@ -251,19 +251,19 @@ App::setResource('locale', function() {
|
|||
});
|
||||
|
||||
// Queues
|
||||
App::setResource('webhook', function($register) {
|
||||
return $register->get('queue-webhook');
|
||||
App::setResource('webhooks', function($register) {
|
||||
return $register->get('queue-webhooks');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('audit', function($register) {
|
||||
return $register->get('queue-audit');
|
||||
App::setResource('audits', function($register) {
|
||||
return $register->get('queue-audits');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('usage', function($register) {
|
||||
return $register->get('queue-usage');
|
||||
}, ['register']);
|
||||
|
||||
App::setResource('mail', function($register) {
|
||||
App::setResource('mails', function($register) {
|
||||
return $register->get('queue-mails');
|
||||
}, ['register']);
|
||||
|
||||
|
|
Loading…
Reference in a new issue