1
0
Fork 0
mirror of synced 2024-06-24 01:00:35 +12:00

Merge branch 'swoole-and-functions' of github.com:appwrite/appwrite into feat--new-vars-command

This commit is contained in:
Eldad Fux 2020-08-15 00:58:14 +03:00
commit d016b9a61d
30 changed files with 508 additions and 383 deletions

View file

@ -43,7 +43,7 @@ App::post('/v1/account')
->param('name', '', function () { return new Text(100); }, 'User name.', true)
->action(function ($email, $password, $name, $request, $response, $project, $projectDB, $webhooks, $audits) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
@ -143,7 +143,7 @@ App::post('/v1/account/sessions')
->param('password', '', function () { return new Password(); }, 'User password. Must be between 6 to 32 chars.')
->action(function ($email, $password, $request, $response, $projectDB, $locale, $geodb, $webhooks, $audits) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Utopia\Locale\Locale $locale */
/** @var GeoIp2\Database\Reader $geodb */
@ -291,7 +291,7 @@ App::get('/v1/account/sessions/oauth2/:provider')
->param('scopes', [], function () { return new ArrayList(new Text(128)); }, 'A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes.', true)
->action(function ($provider, $success, $failure, $scopes, $request, $response, $project) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
$protocol = $request->getProtocol();
@ -336,7 +336,7 @@ App::get('/v1/account/sessions/oauth2/callback/:provider/:projectId')
->param('state', '', function () { return new Text(2048); }, 'Login state params.', true)
->action(function ($projectId, $provider, $code, $state, $request, $response) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$domain = $request->getHostname();
$protocol = $request->getProtocol();
@ -361,7 +361,7 @@ App::post('/v1/account/sessions/oauth2/callback/:provider/:projectId')
->param('state', '', function () { return new Text(2048); }, 'Login state params.', true)
->action(function ($projectId, $provider, $code, $state, $request, $response) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$domain = $request->getHostname();
$protocol = $request->getProtocol();
@ -387,7 +387,7 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect')
->param('state', '', function () { return new Text(2048); }, 'OAuth2 state params.', true)
->action(function ($provider, $code, $state, $request, $response, $project, $user, $projectDB, $geodb, $audits) use ($oauthDefaultSuccess) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
@ -625,7 +625,7 @@ App::get('/v1/account')
->label('sdk.description', '/docs/references/account/get.md')
->label('sdk.response', ['200' => 'user'])
->action(function ($response, $user) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
$user
@ -644,7 +644,7 @@ App::get('/v1/account/prefs')
->label('sdk.method', 'getPrefs')
->label('sdk.description', '/docs/references/account/get-prefs.md')
->action(function ($response, $user) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
$prefs = $user->getAttribute('prefs', new \stdClass);
@ -661,7 +661,7 @@ App::get('/v1/account/sessions')
->label('sdk.method', 'getSessions')
->label('sdk.description', '/docs/references/account/get-sessions.md')
->action(function ($response, $user, $locale) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Utopia\Locale\Locale $locale */
@ -698,7 +698,7 @@ App::get('/v1/account/logs')
->label('sdk.method', 'getLogs')
->label('sdk.description', '/docs/references/account/get-logs.md')
->action(function ($response, $register, $project, $user, $locale, $geodb) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Document $user */
/** @var Utopia\Locale\Locale $locale */
@ -776,7 +776,7 @@ App::patch('/v1/account/name')
->label('sdk.description', '/docs/references/account/update-name.md')
->param('name', '', function () { return new Text(100); }, 'User name.')
->action(function ($name, $response, $user, $projectDB, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -812,7 +812,7 @@ App::patch('/v1/account/password')
->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, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -852,7 +852,7 @@ App::patch('/v1/account/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, $response, $user, $projectDB, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -892,7 +892,6 @@ App::patch('/v1/account/email')
->setParam('resource', 'users/'.$user->getId())
;
$response->dynamic($user, Response::MODEL_USER);
}, ['response', 'user', 'projectDB', 'audits']);
@ -907,7 +906,7 @@ App::patch('/v1/account/prefs')
->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, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -941,7 +940,7 @@ App::delete('/v1/account')
->label('sdk.description', '/docs/references/account/delete.md')
->action(function ($request, $response, $user, $projectDB, $audits, $webhooks) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -1004,7 +1003,7 @@ App::delete('/v1/account/sessions/:sessionId')
->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, $audits, $webhooks) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -1068,7 +1067,7 @@ App::delete('/v1/account/sessions')
->label('abuse-limit', 100)
->action(function ($request, $response, $user, $projectDB, $audits, $webhooks) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -1126,7 +1125,7 @@ App::post('/v1/account/recovery')
->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) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Database\Document $project */
/** @var Utopia\Locale\Locale $locale */
@ -1233,7 +1232,7 @@ App::put('/v1/account/recovery')
->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, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */
@ -1303,7 +1302,7 @@ App::post('/v1/account/verification')
->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, $mails) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
@ -1398,7 +1397,7 @@ App::put('/v1/account/verification')
->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, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */

View file

@ -19,7 +19,7 @@ use Utopia\Config\Config;
use Utopia\Validator\HexColor;
$avatarCallback = function ($type, $code, $width, $height, $quality, $response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$code = \strtolower($code);
$type = \strtolower($type);
@ -145,7 +145,7 @@ App::get('/v1/avatars/image')
->param('width', 400, function () { return new Range(0, 2000); }, 'Resize preview image width, Pass an integer between 0 to 2000.', true)
->param('height', 400, function () { return new Range(0, 2000); }, 'Resize preview image height, Pass an integer between 0 to 2000.', true)
->action(function ($url, $width, $height, $response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$quality = 80;
$output = 'png';
@ -209,7 +209,7 @@ App::get('/v1/avatars/favicon')
->label('sdk.description', '/docs/references/avatars/get-favicon.md')
->param('url', '', function () { return new URL(); }, 'Website URL which you want to fetch the favicon from.')
->action(function ($url, $response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$width = 56;
$height = 56;
@ -362,7 +362,7 @@ App::get('/v1/avatars/qr')
->param('margin', 1, function () { return new Range(0, 10); }, 'Margin from edge. Pass an integer between 0 to 10. Defaults to 1.', true)
->param('download', false, function () { return new Boolean(true); }, 'Return resulting image with \'Content-Disposition: attachment \' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.', true)
->action(function ($text, $size, $margin, $download, $response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$download = ($download === '1' || $download === 'true' || $download === 1 || $download === true);
@ -399,7 +399,7 @@ App::get('/v1/avatars/initials')
->param('color', '', function () { return new HexColor(); }, 'Changes text color. By default a random color will be picked and stay will persistent to the given name.', true)
->param('background', '', function () { return new HexColor(); }, 'Changes background color. By default a random color will be picked and stay will persistent to the given name.', true)
->action(function ($name, $width, $height, $color, $background, $response, $user) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
$themes = [

View file

@ -35,7 +35,7 @@ App::post('/v1/database/collections')
->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, $webhooks, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */
@ -108,7 +108,7 @@ App::get('/v1/database/collections')
->param('offset', 0, function () { return new Range(0, 40000); }, 'Results offset. The default value is 0. Use this param to manage pagination.', true)
->param('orderType', 'ASC', function () { return new WhiteList(['ASC', 'DESC']); }, 'Order result by ASC or DESC order.', true)
->action(function ($search, $limit, $offset, $orderType, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$results = $projectDB->getCollection([
@ -136,7 +136,7 @@ App::get('/v1/database/collections/:collectionId')
->label('sdk.description', '/docs/references/database/get-collection.md')
->param('collectionId', '', function () { return new UID(); }, 'Collection unique ID.')
->action(function ($collectionId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$collection = $projectDB->getDocument($collectionId, false);
@ -228,7 +228,7 @@ App::put('/v1/database/collections/:collectionId')
->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, $webhooks, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */
@ -300,7 +300,7 @@ App::delete('/v1/database/collections/:collectionId')
->label('sdk.description', '/docs/references/database/delete-collection.md')
->param('collectionId', '', function () { return new UID(); }, 'Collection unique ID.')
->action(function ($collectionId, $response, $projectDB, $webhooks, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */
@ -347,7 +347,7 @@ App::post('/v1/database/collections/:collectionId/documents')
->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, $webhooks, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */
@ -467,7 +467,7 @@ App::get('/v1/database/collections/:collectionId/documents')
->param('orderCast', 'string', function () { return new WhiteList(array('int', 'string', 'date', 'time', 'datetime')); }, 'Order field type casting. Possible values are int, string, date, time or datetime. The database will attempt to cast the order field to the value you pass here. The default value is a string.', true)
->param('search', '', function () { return new Text(256); }, 'Search query. Enter any free text search. The database will try to find a match against all document attributes and children.', true)
->action(function ($collectionId, $filters, $limit, $offset, $orderField, $orderType, $orderCast, $search, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$collection = $projectDB->getDocument($collectionId, false);
@ -520,7 +520,7 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId')
->param('documentId', null, function () { return new UID(); }, 'Document unique ID.')
->action(function ($collectionId, $documentId, $request, $response, $projectDB) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$document = $projectDB->getDocument($documentId, false);
@ -568,7 +568,7 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId')
->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, $webhooks, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */
@ -646,7 +646,7 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId')
->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, $webhooks, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */

View file

@ -8,7 +8,7 @@ use Appwrite\Storage\Validator\File;
use Appwrite\Storage\Validator\FileSize;
use Appwrite\Storage\Validator\FileType;
use Appwrite\Storage\Validator\Upload;
use Appwrite\Swoole\Response;
use Appwrite\Utopia\Response;
use Appwrite\Task\Validator\Cron;
use Utopia\App;
use Utopia\Validator\ArrayList;
@ -124,7 +124,7 @@ App::get('/v1/functions/:functionId/usage')
->param('functionId', '', function () { return new UID(); }, 'Function unique ID.')
->param('range', '30d', function () { return new WhiteList(['24h', '7d', '30d', '90d']); }, 'Date range.', true)
->action(function ($functionId, $range, $response, $project, $projectDB, $register) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Database $consoleDB */
/** @var Appwrite\Database\Database $projectDB */
@ -317,7 +317,7 @@ App::delete('/v1/functions/:functionId')
->label('sdk.description', '/docs/references/functions/delete-function.md')
->param('functionId', '', function () { return new UID(); }, 'Function unique ID.')
->action(function ($functionId, $response, $project, $projectDB, $deletes) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $deletes */
@ -552,7 +552,7 @@ App::post('/v1/functions/:functionId/executions')
->param('functionId', '', function () { return new UID(); }, 'Function unique ID.')
// ->param('async', 1, function () { return new Range(0, 1); }, 'Execute code asynchronously. Pass 1 for true, 0 for false. Default value is 1.', true)
->action(function ($functionId, /*$async,*/ $response, $project, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Database $projectDB */

View file

@ -15,7 +15,7 @@ App::get('/v1/health')
->label('sdk.method', 'get')
->label('sdk.description', '/docs/references/health/get.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['status' => 'OK']);
}, ['response']);
@ -25,7 +25,7 @@ App::get('/v1/health/version')
->groups(['api', 'health'])
->label('scope', 'public')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['version' => APP_VERSION_STABLE]);
}, ['response']);
@ -39,7 +39,7 @@ App::get('/v1/health/db')
->label('sdk.method', 'getDB')
->label('sdk.description', '/docs/references/health/get-db.md')
->action(function ($response, $register) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Registry\Registry $register */
$register->get('db'); /* @var $db PDO */
@ -56,7 +56,7 @@ App::get('/v1/health/cache')
->label('sdk.method', 'getCache')
->label('sdk.description', '/docs/references/health/get-cache.md')
->action(function ($response, $register) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Registry\Registry $register */
$register->get('cache'); /* @var $cache Predis\Client */
@ -72,7 +72,7 @@ App::get('/v1/health/time')
->label('sdk.method', 'getTime')
->label('sdk.description', '/docs/references/health/get-time.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/*
* Code from: @see https://www.beliefmedia.com.au/query-ntp-time-server
@ -120,7 +120,7 @@ App::get('/v1/health/queue/webhooks')
->label('sdk.method', 'getQueueWebhooks')
->label('sdk.description', '/docs/references/health/get-queue-webhooks.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['size' => Resque::size('v1-webhooks')]);
}, ['response']);
@ -134,7 +134,7 @@ App::get('/v1/health/queue/tasks')
->label('sdk.method', 'getQueueTasks')
->label('sdk.description', '/docs/references/health/get-queue-tasks.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['size' => Resque::size('v1-tasks')]);
}, ['response']);
@ -148,7 +148,7 @@ App::get('/v1/health/queue/logs')
->label('sdk.method', 'getQueueLogs')
->label('sdk.description', '/docs/references/health/get-queue-logs.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['size' => Resque::size('v1-audit')]);
}, ['response']);
@ -162,7 +162,7 @@ App::get('/v1/health/queue/usage')
->label('sdk.method', 'getQueueUsage')
->label('sdk.description', '/docs/references/health/get-queue-usage.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['size' => Resque::size('v1-usage')]);
}, ['response']);
@ -176,7 +176,7 @@ App::get('/v1/health/queue/certificates')
->label('sdk.method', 'getQueueCertificates')
->label('sdk.description', '/docs/references/health/get-queue-certificates.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['size' => Resque::size('v1-certificates')]);
}, ['response']);
@ -190,7 +190,7 @@ App::get('/v1/health/queue/functions')
->label('sdk.method', 'getQueueFunctions')
->label('sdk.description', '/docs/references/health/get-queue-functions.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json(['size' => Resque::size('v1-functions')]);
}, ['response']);
@ -204,7 +204,7 @@ App::get('/v1/health/storage/local')
->label('sdk.method', 'getStorageLocal')
->label('sdk.description', '/docs/references/health/get-storage-local.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
foreach ([
'Uploads' => APP_STORAGE_UPLOADS,
@ -235,7 +235,7 @@ App::get('/v1/health/anti-virus')
->label('sdk.method', 'getAntiVirus')
->label('sdk.description', '/docs/references/health/get-storage-anti-virus.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
if (App::getEnv('_APP_STORAGE_ANTIVIRUS') === 'disabled') { // Check if scans are enabled
throw new Exception('Anitvirus is disabled');
@ -258,7 +258,7 @@ App::get('/v1/health/stats') // Currently only used internally
// ->label('sdk.method', 'getStats')
->label('docs', false)
->action(function ($response, $register) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Registry\Registry $register */
$device = Storage::getDevice('files');

View file

@ -1,7 +1,7 @@
<?php
use Appwrite\Database\Document;
use Appwrite\Swoole\Response;
use Appwrite\Utopia\Response;
use Utopia\App;
use Utopia\Config\Config;
@ -15,7 +15,7 @@ App::get('/v1/locale')
->label('sdk.description', '/docs/references/locale/get-locale.md')
->action(function ($request, $response, $locale, $geodb) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Locale\Locale $locale */
/** @var GeoIp2\Database\Reader $geodb */
@ -72,7 +72,7 @@ App::get('/v1/locale/countries')
->label('sdk.method', 'getCountries')
->label('sdk.description', '/docs/references/locale/get-countries.md')
->action(function ($response, $locale) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Locale\Locale $locale */
$list = $locale->getText('countries'); /* @var $list array */
@ -91,7 +91,7 @@ App::get('/v1/locale/countries/eu')
->label('sdk.method', 'getCountriesEU')
->label('sdk.description', '/docs/references/locale/get-countries-eu.md')
->action(function ($response, $locale) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Locale\Locale $locale */
$countries = $locale->getText('countries'); /* @var $countries array */
@ -118,7 +118,7 @@ App::get('/v1/locale/countries/phones')
->label('sdk.method', 'getCountriesPhones')
->label('sdk.description', '/docs/references/locale/get-countries-phones.md')
->action(function ($response, $locale) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Locale\Locale $locale */
$list = Config::getParam('locale-phones'); /* @var $list array */
@ -145,7 +145,7 @@ App::get('/v1/locale/continents')
->label('sdk.method', 'getContinents')
->label('sdk.description', '/docs/references/locale/get-continents.md')
->action(function ($response, $locale) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Locale\Locale $locale */
$list = $locale->getText('continents'); /* @var $list array */
@ -164,7 +164,7 @@ App::get('/v1/locale/currencies')
->label('sdk.method', 'getCurrencies')
->label('sdk.description', '/docs/references/locale/get-currencies.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$currencies = Config::getParam('locale-currencies');
@ -181,7 +181,7 @@ App::get('/v1/locale/languages')
->label('sdk.method', 'getLanguages')
->label('sdk.description', '/docs/references/locale/get-languages.md')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$languages = Config::getParam('locale-languages');

View file

@ -2,7 +2,6 @@
use Utopia\App;
use Utopia\Exception;
use Utopia\Response;
use Utopia\Validator\ArrayList;
use Utopia\Validator\Boolean;
use Utopia\Validator\Text;
@ -19,6 +18,7 @@ use Appwrite\Database\Validator\UID;
use Appwrite\OpenSSL\OpenSSL;
use Appwrite\Network\Validator\CNAME;
use Appwrite\Network\Validator\Domain as DomainValidator;
use Appwrite\Utopia\Response;
use Cron\CronExpression;
App::post('/v1/projects')
@ -39,7 +39,7 @@ App::post('/v1/projects')
->param('legalAddress', '', function () { return new Text(256); }, 'Project legal Address.', true)
->param('legalTaxId', '', function () { return new Text(256); }, 'Project legal Tax ID.', true)
->action(function ($name, $teamId, $description, $logo, $url, $legalName, $legalCountry, $legalState, $legalCity, $legalAddress, $legalTaxId, $response, $consoleDB, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
/** @var Appwrite\Database\Database $projectDB */
@ -97,7 +97,7 @@ App::get('/v1/projects')
->param('offset', 0, function () { return new Range(0, 2000); }, 'Results offset. The default value is 0. Use this param to manage pagination.', true)
->param('orderType', 'ASC', function () { return new WhiteList(['ASC', 'DESC']); }, 'Order result by ASC or DESC order.', true)
->action(function ($search, $limit, $offset, $orderType, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$results = $consoleDB->getCollection([
@ -133,7 +133,7 @@ App::get('/v1/projects/:projectId')
->label('sdk.method', 'get')
->param('projectId', '', function () { return new UID(); }, 'Project unique ID.')
->action(function ($projectId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -163,7 +163,7 @@ App::get('/v1/projects/:projectId/usage')
->param('projectId', '', function () { return new UID(); }, 'Project unique ID.')
->param('range', '30d', function () { return new WhiteList(['24h', '7d', '30d', '90d']); }, 'Date range.', true)
->action(function ($projectId, $range, $response, $consoleDB, $projectDB, $register) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
/** @var Appwrite\Database\Database $projectDB */
/** @var Utopia\Registry\Registry $register */
@ -360,7 +360,7 @@ App::patch('/v1/projects/:projectId')
->param('legalAddress', '', function () { return new Text(256); }, 'Project legal address.', true)
->param('legalTaxId', '', function () { return new Text(256); }, 'Project legal tax ID.', true)
->action(function ($projectId, $name, $description, $logo, $url, $legalName, $legalCountry, $legalState, $legalCity, $legalAddress, $legalTaxId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -400,7 +400,7 @@ App::patch('/v1/projects/:projectId/oauth2')
->param('appId', '', function () { return new Text(256); }, 'Provider app ID.', true)
->param('secret', '', function () { return new text(512); }, 'Provider secret key.', true)
->action(function ($projectId, $provider, $appId, $secret, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -441,7 +441,7 @@ App::delete('/v1/projects/:projectId')
->param('projectId', '', function () { return new UID(); }, 'Project unique ID.')
->param('password', '', function () { return new UID(); }, 'Your user password for confirmation. Must be between 6 to 32 chars.')
->action(function ($projectId, $password, $response, $user, $consoleDB, $deletes) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $consoleDB */
/** @var Appwrite\Event\Event $deletes */
@ -495,7 +495,7 @@ App::post('/v1/projects/:projectId/webhooks')
->param('httpUser', '', function () { return new Text(256); }, 'Webhook HTTP user.', true)
->param('httpPass', '', function () { return new Text(256); }, 'Webhook HTTP password.', true)
->action(function ($projectId, $name, $events, $url, $security, $httpUser, $httpPass, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -542,10 +542,8 @@ App::post('/v1/projects/:projectId/webhooks')
throw new Exception('Failed saving project to DB', 500);
}
$response
->setStatusCode(Response::STATUS_CODE_CREATED)
->json($webhook->getArrayCopy())
;
$response->setStatusCode(Response::STATUS_CODE_CREATED);
$response->dynamic($webhook, Response::MODEL_WEBHOOK);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/webhooks')
@ -556,7 +554,7 @@ App::get('/v1/projects/:projectId/webhooks')
->label('sdk.method', 'listWebhooks')
->param('projectId', '', function () { return new UID(); }, 'Project unique ID.')
->action(function ($projectId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -579,7 +577,10 @@ App::get('/v1/projects/:projectId/webhooks')
$webhook->setAttribute('httpPass', OpenSSL::decrypt($httpPass['data'], $httpPass['method'], $key, 0, \hex2bin($httpPass['iv']), \hex2bin($httpPass['tag'])));
}
$response->json($webhooks);
$response->dynamic(new Document([
'sum' => count($webhooks),
'webhooks' => $webhooks
]), Response::MODEL_WEBHOOK_LIST);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/webhooks/:webhookId')
@ -591,7 +592,7 @@ App::get('/v1/projects/:projectId/webhooks/:webhookId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('webhookId', null, function () { return new UID(); }, 'Webhook unique ID.')
->action(function ($projectId, $webhookId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -613,7 +614,7 @@ App::get('/v1/projects/:projectId/webhooks/:webhookId')
$webhook->setAttribute('httpPass', OpenSSL::decrypt($httpPass['data'], $httpPass['method'], $key, 0, \hex2bin($httpPass['iv']), \hex2bin($httpPass['tag'])));
}
$response->json($webhook->getArrayCopy());
$response->dynamic($webhook, Response::MODEL_WEBHOOK);
}, ['response', 'consoleDB']);
App::put('/v1/projects/:projectId/webhooks/:webhookId')
@ -630,7 +631,7 @@ App::put('/v1/projects/:projectId/webhooks/:webhookId')
->param('security', false, function () { return new Boolean(true); }, 'Certificate verification, false for disabled or true for enabled.') ->param('httpUser', '', function () { return new Text(256); }, 'Webhook HTTP user.', true)
->param('httpPass', '', function () { return new Text(256); }, 'Webhook HTTP password.', true)
->action(function ($projectId, $webhookId, $name, $events, $url, $security, $httpUser, $httpPass, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -670,7 +671,7 @@ App::put('/v1/projects/:projectId/webhooks/:webhookId')
throw new Exception('Failed saving webhook to DB', 500);
}
$response->json($webhook->getArrayCopy());
$response->dynamic($webhook, Response::MODEL_WEBHOOK);
}, ['response', 'consoleDB']);
App::delete('/v1/projects/:projectId/webhooks/:webhookId')
@ -682,7 +683,7 @@ App::delete('/v1/projects/:projectId/webhooks/:webhookId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('webhookId', null, function () { return new UID(); }, 'Webhook unique ID.')
->action(function ($projectId, $webhookId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -716,7 +717,7 @@ App::post('/v1/projects/:projectId/keys')
->param('name', null, function () { return new Text(256); }, 'Key name.')
->param('scopes', null, function () { return new ArrayList(new WhiteList(Config::getParam('scopes'))); }, 'Key scopes list.')
->action(function ($projectId, $name, $scopes, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -748,10 +749,8 @@ App::post('/v1/projects/:projectId/keys')
throw new Exception('Failed saving project to DB', 500);
}
$response
->setStatusCode(Response::STATUS_CODE_CREATED)
->json($key->getArrayCopy())
;
$response->setStatusCode(Response::STATUS_CODE_CREATED);
$response->dynamic($key, Response::MODEL_KEY);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/keys')
@ -762,7 +761,7 @@ App::get('/v1/projects/:projectId/keys')
->label('sdk.method', 'listKeys')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->action(function ($projectId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -771,7 +770,12 @@ App::get('/v1/projects/:projectId/keys')
throw new Exception('Project not found', 404);
}
$response->json($project->getAttribute('keys', [])); //FIXME make sure array objects return correctly
$keys = $project->getAttribute('keys', []);
$response->dynamic(new Document([
'sum' => count($keys),
'keys' => $keys
]), Response::MODEL_KEY_LIST);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/keys/:keyId')
@ -795,7 +799,7 @@ App::get('/v1/projects/:projectId/keys/:keyId')
throw new Exception('Key not found', 404);
}
$response->json($key->getArrayCopy());
$response->dynamic($key, Response::MODEL_KEY);
}, ['response', 'consoleDB']);
App::put('/v1/projects/:projectId/keys/:keyId')
@ -809,7 +813,7 @@ App::put('/v1/projects/:projectId/keys/:keyId')
->param('name', null, function () { return new Text(256); }, 'Key name.')
->param('scopes', null, function () { return new ArrayList(new WhiteList(Config::getParam('scopes'))); }, 'Key scopes list')
->action(function ($projectId, $keyId, $name, $scopes, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -833,7 +837,7 @@ App::put('/v1/projects/:projectId/keys/:keyId')
throw new Exception('Failed saving key to DB', 500);
}
$response->json($key->getArrayCopy());
$response->dynamic($key, Response::MODEL_KEY);
}, ['response', 'consoleDB']);
App::delete('/v1/projects/:projectId/keys/:keyId')
@ -845,7 +849,7 @@ App::delete('/v1/projects/:projectId/keys/:keyId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('keyId', null, function () { return new UID(); }, 'Key unique ID.')
->action(function ($projectId, $keyId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -886,7 +890,7 @@ App::post('/v1/projects/:projectId/tasks')
->param('httpUser', '', function () { return new Text(256); }, 'Task HTTP user.', true)
->param('httpPass', '', function () { return new Text(256); }, 'Task HTTP password.', true)
->action(function ($projectId, $name, $status, $schedule, $security, $httpMethod, $httpUrl, $httpHeaders, $httpUser, $httpPass, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -948,10 +952,8 @@ App::post('/v1/projects/:projectId/tasks')
ResqueScheduler::enqueueAt($next, 'v1-tasks', 'TasksV1', $task->getArrayCopy());
}
$response
->setStatusCode(Response::STATUS_CODE_CREATED)
->json($task->getArrayCopy())
;
$response->setStatusCode(Response::STATUS_CODE_CREATED);
$response->dynamic($task, Response::MODEL_TASK);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/tasks')
@ -962,7 +964,7 @@ App::get('/v1/projects/:projectId/tasks')
->label('sdk.method', 'listTasks')
->param('projectId', '', function () { return new UID(); }, 'Project unique ID.')
->action(function ($projectId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -985,7 +987,10 @@ App::get('/v1/projects/:projectId/tasks')
$task->setAttribute('httpPass', OpenSSL::decrypt($httpPass['data'], $httpPass['method'], $key, 0, \hex2bin($httpPass['iv']), \hex2bin($httpPass['tag'])));
}
$response->json($tasks);
$response->dynamic(new Document([
'sum' => count($tasks),
'tasks' => $tasks
]), Response::MODEL_TASK_LIST);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/tasks/:taskId')
@ -997,7 +1002,7 @@ App::get('/v1/projects/:projectId/tasks/:taskId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('taskId', null, function () { return new UID(); }, 'Task unique ID.')
->action(function ($projectId, $taskId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1019,7 +1024,7 @@ App::get('/v1/projects/:projectId/tasks/:taskId')
$task->setAttribute('httpPass', OpenSSL::decrypt($httpPass['data'], $httpPass['method'], $key, 0, \hex2bin($httpPass['iv']), \hex2bin($httpPass['tag'])));
}
$response->json($task->getArrayCopy());
$response->dynamic($task, Response::MODEL_TASK);
}, ['response', 'consoleDB']);
App::put('/v1/projects/:projectId/tasks/:taskId')
@ -1040,7 +1045,7 @@ App::put('/v1/projects/:projectId/tasks/:taskId')
->param('httpUser', '', function () { return new Text(256); }, 'Task HTTP user.', true)
->param('httpPass', '', function () { return new Text(256); }, 'Task HTTP password.', true)
->action(function ($projectId, $taskId, $name, $status, $schedule, $security, $httpMethod, $httpUrl, $httpHeaders, $httpUser, $httpPass, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1092,7 +1097,7 @@ App::put('/v1/projects/:projectId/tasks/:taskId')
ResqueScheduler::enqueueAt($next, 'v1-tasks', 'TasksV1', $task->getArrayCopy());
}
$response->json($task->getArrayCopy());
$response->dynamic($task, Response::MODEL_TASK);
}, ['response', 'consoleDB']);
App::delete('/v1/projects/:projectId/tasks/:taskId')
@ -1104,7 +1109,7 @@ App::delete('/v1/projects/:projectId/tasks/:taskId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('taskId', null, function () { return new UID(); }, 'Task unique ID.')
->action(function ($projectId, $taskId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1141,7 +1146,7 @@ App::post('/v1/projects/:projectId/platforms')
->param('store', '', function () { return new Text(256); }, 'App store or Google Play store ID.', true)
->param('hostname', '', function () { return new Text(256); }, 'Platform client hostname.', true)
->action(function ($projectId, $type, $name, $key, $store, $hostname, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1177,10 +1182,8 @@ App::post('/v1/projects/:projectId/platforms')
throw new Exception('Failed saving project to DB', 500);
}
$response
->setStatusCode(Response::STATUS_CODE_CREATED)
->json($platform->getArrayCopy())
;
$response->setStatusCode(Response::STATUS_CODE_CREATED);
$response->dynamic($platform, Response::MODEL_PLATFORM);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/platforms')
@ -1191,7 +1194,7 @@ App::get('/v1/projects/:projectId/platforms')
->label('sdk.method', 'listPlatforms')
->param('projectId', '', function () { return new UID(); }, 'Project unique ID.')
->action(function ($projectId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1202,7 +1205,10 @@ App::get('/v1/projects/:projectId/platforms')
$platforms = $project->getAttribute('platforms', []);
$response->json($platforms);
$response->dynamic(new Document([
'sum' => count($platforms),
'platforms' => $platforms
]), Response::MODEL_PLATFORM_LIST);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/platforms/:platformId')
@ -1214,7 +1220,7 @@ App::get('/v1/projects/:projectId/platforms/:platformId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('platformId', null, function () { return new UID(); }, 'Platform unique ID.')
->action(function ($projectId, $platformId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1229,7 +1235,7 @@ App::get('/v1/projects/:projectId/platforms/:platformId')
throw new Exception('Platform not found', 404);
}
$response->json($platform->getArrayCopy());
$response->dynamic($platform, Response::MODEL_PLATFORM);
}, ['response', 'consoleDB']);
App::put('/v1/projects/:projectId/platforms/:platformId')
@ -1245,7 +1251,7 @@ App::put('/v1/projects/:projectId/platforms/:platformId')
->param('store', '', function () { return new Text(256); }, 'App store or Google Play store ID.', true)
->param('hostname', '', function () { return new Text(256); }, 'Platform client URL.', true)
->action(function ($projectId, $platformId, $name, $key, $store, $hostname, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1272,7 +1278,7 @@ App::put('/v1/projects/:projectId/platforms/:platformId')
throw new Exception('Failed saving platform to DB', 500);
}
$response->json($platform->getArrayCopy());
$response->dynamic($platform, Response::MODEL_PLATFORM);
}, ['response', 'consoleDB']);
App::delete('/v1/projects/:projectId/platforms/:platformId')
@ -1284,7 +1290,7 @@ App::delete('/v1/projects/:projectId/platforms/:platformId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('platformId', null, function () { return new UID(); }, 'Platform unique ID.')
->action(function ($projectId, $platformId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1317,7 +1323,7 @@ App::post('/v1/projects/:projectId/domains')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('domain', null, function () { return new DomainValidator(); }, 'Domain name.')
->action(function ($projectId, $domain, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1366,10 +1372,8 @@ App::post('/v1/projects/:projectId/domains')
throw new Exception('Failed saving project to DB', 500);
}
$response
->setStatusCode(Response::STATUS_CODE_CREATED)
->json($domain->getArrayCopy())
;
$response->setStatusCode(Response::STATUS_CODE_CREATED);
$response->dynamic($domain, Response::MODEL_DOMAIN);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/domains')
@ -1380,7 +1384,7 @@ App::get('/v1/projects/:projectId/domains')
->label('sdk.method', 'listDomains')
->param('projectId', '', function () { return new UID(); }, 'Project unique ID.')
->action(function ($projectId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1390,8 +1394,11 @@ App::get('/v1/projects/:projectId/domains')
}
$domains = $project->getAttribute('domains', []);
$response->json($domains);
$response->dynamic(new Document([
'sum' => count($domains),
'domains' => $domains
]), Response::MODEL_DOMAIN_LIST);
}, ['response', 'consoleDB']);
App::get('/v1/projects/:projectId/domains/:domainId')
@ -1403,7 +1410,7 @@ App::get('/v1/projects/:projectId/domains/:domainId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('domainId', null, function () { return new UID(); }, 'Domain unique ID.')
->action(function ($projectId, $domainId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1418,7 +1425,7 @@ App::get('/v1/projects/:projectId/domains/:domainId')
throw new Exception('Domain not found', 404);
}
$response->json($domain->getArrayCopy());
$response->dynamic($domain, Response::MODEL_DOMAIN);
}, ['response', 'consoleDB']);
App::patch('/v1/projects/:projectId/domains/:domainId/verification')
@ -1430,7 +1437,7 @@ App::patch('/v1/projects/:projectId/domains/:domainId/verification')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('domainId', null, function () { return new UID(); }, 'Domain unique ID.')
->action(function ($projectId, $domainId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);
@ -1452,7 +1459,7 @@ App::patch('/v1/projects/:projectId/domains/:domainId/verification')
}
if ($domain->getAttribute('verification') === true) {
return $response->json($domain->getArrayCopy());
return $response->dynamic($domain, Response::MODEL_DOMAIN);
}
// Verify Domain with DNS records
@ -1476,7 +1483,7 @@ App::patch('/v1/projects/:projectId/domains/:domainId/verification')
'domain' => $domain->getAttribute('domain'),
]);
$response->json($domain->getArrayCopy());
$response->dynamic($domain, Response::MODEL_DOMAIN);
}, ['response', 'consoleDB']);
App::delete('/v1/projects/:projectId/domains/:domainId')
@ -1488,7 +1495,7 @@ App::delete('/v1/projects/:projectId/domains/:domainId')
->param('projectId', null, function () { return new UID(); }, 'Project unique ID.')
->param('domainId', null, function () { return new UID(); }, 'Domain unique ID.')
->action(function ($projectId, $domainId, $response, $consoleDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $consoleDB */
$project = $consoleDB->getDocument($projectId);

View file

@ -20,7 +20,7 @@ use Appwrite\Storage\Validator\Upload;
use Appwrite\Storage\Compression\Algorithms\GZIP;
use Appwrite\Resize\Resize;
use Appwrite\OpenSSL\OpenSSL;
use Appwrite\Swoole\Response;
use Appwrite\Utopia\Response;
use Utopia\Config\Config;
App::post('/v1/storage/files')
@ -39,7 +39,7 @@ App::post('/v1/storage/files')
->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, $webhooks, $audits, $usage) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
@ -171,7 +171,7 @@ App::get('/v1/storage/files')
->param('offset', 0, function () { return new Range(0, 2000); }, 'Results offset. The default value is 0. Use this param to manage pagination.', true)
->param('orderType', 'ASC', function () { return new WhiteList(['ASC', 'DESC']); }, 'Order result by ASC or DESC order.', true)
->action(function ($search, $limit, $offset, $orderType, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$results = $projectDB->getCollection([
@ -202,7 +202,7 @@ App::get('/v1/storage/files/:fileId')
->label('sdk.description', '/docs/references/storage/get-file.md')
->param('fileId', '', function () { return new UID(); }, 'File unique ID.')
->action(function ($fileId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$file = $projectDB->getDocument($fileId);
@ -232,7 +232,7 @@ App::get('/v1/storage/files/:fileId/preview')
->param('output', '', function () { return new WhiteList(\array_keys(Config::getParam('storage-outputs'))); }, 'Output format type (jpeg, jpg, png, gif and webp).', true)
->action(function ($fileId, $width, $height, $quality, $background, $output, $request, $response, $project, $projectDB) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Database $projectDB */
@ -352,7 +352,7 @@ App::get('/v1/storage/files/:fileId/download')
->label('sdk.methodType', 'location')
->param('fileId', '', function () { return new UID(); }, 'File unique ID.')
->action(function ($fileId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$file = $projectDB->getDocument($fileId);
@ -408,7 +408,7 @@ App::get('/v1/storage/files/:fileId/view')
->param('fileId', '', function () { return new UID(); }, 'File unique ID.')
->param('as', '', function () { return new WhiteList(['pdf', /*'html',*/ 'text']); }, 'Choose a file format to convert your file to. Currently you can only convert word and pdf files to pdf or txt. This option is currently experimental only, use at your own risk.', true)
->action(function ($fileId, $as, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$file = $projectDB->getDocument($fileId);
@ -481,7 +481,7 @@ App::put('/v1/storage/files/:fileId')
->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, $webhooks, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */
@ -527,7 +527,7 @@ App::delete('/v1/storage/files/:fileId')
->label('sdk.description', '/docs/references/storage/delete-file.md')
->param('fileId', '', function () { return new UID(); }, 'File unique ID.')
->action(function ($fileId, $response, $projectDB, $webhooks, $audits, $usage) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */

View file

@ -30,7 +30,7 @@ App::post('/v1/teams')
->param('name', null, function () { return new Text(100); }, 'Team name.')
->param('roles', ['owner'], function () { return new ArrayList(new Text(128)); }, 'Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](/docs/permissions).', true)
->action(function ($name, $roles, $response, $user, $projectDB, $mode) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var bool $mode */
@ -97,7 +97,7 @@ App::get('/v1/teams')
->param('offset', 0, function () { return new Range(0, 2000); }, 'Results offset. The default value is 0. Use this param to manage pagination.', true)
->param('orderType', 'ASC', function () { return new WhiteList(['ASC', 'DESC']); }, 'Order result by ASC or DESC order.', true)
->action(function ($search, $limit, $offset, $orderType, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$results = $projectDB->getCollection([
@ -128,7 +128,7 @@ App::get('/v1/teams/:teamId')
->label('sdk.description', '/docs/references/teams/get-team.md')
->param('teamId', '', function () { return new UID(); }, 'Team unique ID.')
->action(function ($teamId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$team = $projectDB->getDocument($teamId);
@ -151,7 +151,7 @@ App::put('/v1/teams/:teamId')
->param('teamId', '', function () { return new UID(); }, 'Team unique ID.')
->param('name', null, function () { return new Text(100); }, 'Team name.')
->action(function ($teamId, $name, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$team = $projectDB->getDocument($teamId);
@ -181,7 +181,7 @@ App::delete('/v1/teams/:teamId')
->label('sdk.description', '/docs/references/teams/delete-team.md')
->param('teamId', '', function () { return new UID(); }, 'Team unique ID.')
->action(function ($teamId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$team = $projectDB->getDocument($teamId);
@ -226,7 +226,7 @@ App::post('/v1/teams/:teamId/memberships')
->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, $audits, $mails, $mode) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
@ -414,7 +414,7 @@ App::get('/v1/teams/:teamId/memberships')
->param('offset', 0, function () { return new Range(0, 2000); }, 'Results offset. The default value is 0. Use this param to manage pagination.', true)
->param('orderType', 'ASC', function () { return new WhiteList(['ASC', 'DESC']); }, 'Order result by ASC or DESC order.', true)
->action(function ($teamId, $search, $limit, $offset, $orderType, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$team = $projectDB->getDocument($teamId);
@ -464,7 +464,7 @@ App::patch('/v1/teams/:teamId/memberships/:inviteId/status')
->param('secret', '', function () { return new Text(256); }, 'Secret key.')
->action(function ($teamId, $inviteId, $userId, $secret, $request, $response, $user, $projectDB, $geodb, $audits) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $user */
/** @var Appwrite\Database\Database $projectDB */
/** @var GeoIp2\Database\Reader $geodb */
@ -635,7 +635,7 @@ App::delete('/v1/teams/:teamId/memberships/:inviteId')
->param('teamId', '', function () { return new UID(); }, 'Team unique ID.')
->param('inviteId', '', function () { return new UID(); }, 'Invite unique ID.')
->action(function ($teamId, $inviteId, $response, $projectDB, $audits) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Appwrite\Event\Event $audits */

View file

@ -30,7 +30,7 @@ App::post('/v1/users')
->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, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$profile = $projectDB->getCollectionFirst([ // Get user by email address
@ -82,7 +82,7 @@ App::get('/v1/users')
->param('offset', 0, function () { return new Range(0, 2000); }, 'Results offset. The default value is 0. Use this param to manage pagination.', true)
->param('orderType', 'ASC', function () { return new WhiteList(['ASC', 'DESC']); }, 'Order result by ASC or DESC order.', true)
->action(function ($search, $limit, $offset, $orderType, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$results = $projectDB->getCollection([
@ -113,7 +113,7 @@ App::get('/v1/users/:userId')
->label('sdk.description', '/docs/references/users/get-user.md')
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->action(function ($userId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$user = $projectDB->getDocument($userId);
@ -135,7 +135,7 @@ App::get('/v1/users/:userId/prefs')
->label('sdk.description', '/docs/references/users/get-user-prefs.md')
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->action(function ($userId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$user = $projectDB->getDocument($userId);
@ -159,7 +159,7 @@ App::get('/v1/users/:userId/sessions')
->label('sdk.description', '/docs/references/users/get-user-sessions.md')
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->action(function ($userId, $response, $projectDB, $locale) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
/** @var Utopia\Locale\Locale $locale */
@ -202,7 +202,7 @@ App::get('/v1/users/:userId/logs')
->label('sdk.description', '/docs/references/users/get-user-logs.md')
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->action(function ($userId, $response, $register, $project, $projectDB, $locale, $geodb) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Registry\Registry $register */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Database $projectDB */
@ -288,7 +288,7 @@ App::patch('/v1/users/:userId/status')
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->param('status', '', function () { return new WhiteList([Auth::USER_STATUS_ACTIVATED, Auth::USER_STATUS_BLOCKED, Auth::USER_STATUS_UNACTIVATED]); }, 'User Status code. To activate the user pass '.Auth::USER_STATUS_ACTIVATED.', to block the user pass '.Auth::USER_STATUS_BLOCKED.' and for disabling the user pass '.Auth::USER_STATUS_UNACTIVATED)
->action(function ($userId, $status, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$user = $projectDB->getDocument($userId);
@ -319,7 +319,7 @@ App::patch('/v1/users/:userId/prefs')
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->param('prefs', '', function () { return new Assoc();}, 'Prefs key-value JSON object.')
->action(function ($userId, $prefs, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$user = $projectDB->getDocument($userId);
@ -351,7 +351,7 @@ App::delete('/v1/users/:userId/sessions/:sessionId')
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->param('sessionId', null, function () { return new UID(); }, 'User unique session ID.')
->action(function ($userId, $sessionId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$user = $projectDB->getDocument($userId);
@ -384,7 +384,7 @@ App::delete('/v1/users/:userId/sessions')
->label('abuse-limit', 100)
->param('userId', '', function () { return new UID(); }, 'User unique ID.')
->action(function ($userId, $response, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Database $projectDB */
$user = $projectDB->getDocument($userId);

View file

@ -23,7 +23,7 @@ Config::setParam('cookieSamesite', Response::COOKIE_SAMESITE_NONE);
App::init(function ($utopia, $request, $response, $console, $project, $user, $locale, $webhooks, $audits, $usage, $functions, $clients) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $console */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Document $user */
@ -257,7 +257,7 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo
App::shutdown(function ($utopia, $request, $response, $project, $webhooks, $audits, $usage, $deletes, $functions, $mode) {
/** @var Utopia\App $utopia */
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Event\Event $webhooks */
/** @var Appwrite\Event\Event $audits */
@ -299,7 +299,7 @@ App::shutdown(function ($utopia, $request, $response, $project, $webhooks, $audi
App::options(function ($request, $response) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$origin = $request->getOrigin();
@ -317,7 +317,7 @@ App::error(function ($error, $utopia, $request, $response, $layout, $project) {
/** @var Exception $error */
/** @var Utopia\App $utopia */
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\View $layout */
/** @var Appwrite\Database\Document $project */
@ -405,7 +405,7 @@ App::get('/manifest.json')
->label('scope', 'public')
->label('docs', false)
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json([
'name' => APP_NAME,

View file

@ -187,7 +187,7 @@ App::get('/v1/mock/tests/general/redirect')
->label('sdk.description', 'Mock a redirect request for SDK tests')
->label('sdk.mock', true)
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->redirect('/v1/mock/tests/general/redirected');
}, ['response']);
@ -210,7 +210,7 @@ App::get('/v1/mock/tests/general/set-cookie')
->label('sdk.description', 'Mock a set cookie request for SDK tests')
->label('sdk.mock', true)
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->addCookie('cookieName', 'cookieValue', \time() + 31536000, '/', 'localhost', true, true);
}, ['response']);
@ -238,7 +238,7 @@ App::get('/v1/mock/tests/general/empty')
->label('sdk.description', 'Mock a redirected request for SDK tests')
->label('sdk.mock', true)
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->noContent();
exit();
@ -254,7 +254,7 @@ App::get('/v1/mock/tests/general/oauth2')
->param('scope', '', function () { return new Text(100); }, 'OAuth2 scope list.')
->param('state', '', function () { return new Text(1024); }, 'OAuth2 state.')
->action(function ($clientId, $redirectURI, $scope, $state, $response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->redirect($redirectURI.'?'.\http_build_query(['code' => 'abcdef', 'state' => $state]));
}, ['response']);
@ -269,7 +269,7 @@ App::get('/v1/mock/tests/general/oauth2/token')
->param('client_secret', '', function () { return new Text(100); }, 'OAuth2 scope list.')
->param('code', '', function () { return new Text(100); }, 'OAuth2 state.')
->action(function ($clientId, $redirectURI, $clientSecret, $code, $response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
if ($clientId != '1') {
throw new Exception('Invalid client ID');
@ -292,7 +292,7 @@ App::get('/v1/mock/tests/general/oauth2/user')
->label('docs', false)
->param('token', '', function () { return new Text(100); }, 'OAuth2 Access Token.')
->action(function ($token, $response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
if ($token != '123456') {
throw new Exception('Invalid token');
@ -309,7 +309,7 @@ App::get('/v1/mock/tests/general/oauth2/success')
->label('scope', 'public')
->label('docs', false)
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->json([
'result' => 'success',
@ -320,7 +320,7 @@ App::get('/v1/mock/tests/general/oauth2/failure')
->label('scope', 'public')
->label('docs', false)
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response
->setStatusCode(Response::STATUS_CODE_BAD_REQUEST)
@ -332,7 +332,7 @@ App::get('/v1/mock/tests/general/oauth2/failure')
App::shutdown(function($utopia, $response, $request) {
/** @var Utopia\App $utopia */
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$result = [];
$route = $utopia->match($request);

View file

@ -8,7 +8,7 @@ use Utopia\Abuse\Adapters\TimeLimit;
App::init(function ($utopia, $request, $response, $project, $user, $register) {
/** @var Utopia\App $utopia */
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Document $user */
/** @var Utopia\Registry\Registry $register */

View file

@ -6,7 +6,7 @@ use Utopia\Config\Config;
App::init(function ($utopia, $request, $response, $layout) {
/** @var Utopia\App $utopia */
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\View $layout */
/* AJAX check */

View file

@ -19,7 +19,7 @@ App::init(function ($layout) {
}, ['layout'], 'console');
App::shutdown(function ($response, $layout) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\View $layout */
$header = new View(__DIR__.'/../../views/console/comps/header.phtml');
@ -213,7 +213,7 @@ App::get('/console/database/collection')
->label('scope', 'console')
->param('id', '', function () { return new UID(); }, 'Collection unique ID.')
->action(function ($id, $response, $layout, $projectDB) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\View $layout */
/** @var Appwrite\Database\Database $projectDB */

View file

@ -28,7 +28,7 @@ App::init(function ($layout) {
}, ['layout'], 'home');
App::shutdown(function ($response, $layout) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\View $layout */
$response->html($layout->render());
@ -39,7 +39,7 @@ App::get('/')
->label('permission', 'public')
->label('scope', 'home')
->action(function ($response) {
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$response->redirect('/auth/signin');
}, ['response']);
@ -190,7 +190,7 @@ App::get('/open-api-2.json')
->action(function ($platform, $extensions, $tests, $utopia, $request, $response) {
/** @var Utopia\App $utopia */
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
$security = [
APP_PLATFORM_CLIENT => ['Project' => []],

View file

@ -4,7 +4,7 @@ require_once __DIR__.'/../vendor/autoload.php';
use Appwrite\Swoole\Files;
use Appwrite\Swoole\Request;
use Appwrite\Swoole\Response;
use Appwrite\Utopia\Response;
use Swoole\Process;
use Swoole\Http\Server;
use Swoole\Http\Request as SwooleRequest;

View file

@ -353,7 +353,7 @@ App::setResource('clients', function($console, $project) {
App::setResource('user', function($mode, $project, $console, $request, $response, $projectDB, $consoleDB) {
/** @var Appwrite\Swoole\Request $request */
/** @var Appwrite\Swoole\Response $response */
/** @var Appwrite\Utopia\Response $response */
/** @var Appwrite\Database\Document $project */
/** @var Appwrite\Database\Database $consoleDB */
/** @var Appwrite\Database\Database $projectDB */

View file

@ -16,7 +16,7 @@ if (file_exists(__DIR__.'/../vendor/autoload.php')) {
require __DIR__.'/../vendor/autoload.php';
}
use Appwrite\Preloader\Preloader;
use Utopia\Preloader\Preloader;
include __DIR__.'/controllers/general.php';

View file

@ -29,7 +29,7 @@ if($type === 'document') {
<button type="button" class="link"><i class="icon-down-dir"></i> Move Down</button>
</li>
<li>
<button type="button" data-ls-ui-trigger="splice-<?php echo $this->escape($namespace); ?>-{{$index}}" class="link" data-debug="1"><i class="icon-cancel"></i> Remove</button>
<button type="button" data-ls-ui-trigger="splice-<?php echo $this->escape($namespace); ?>-{{$index}}" class="link"><i class="icon-cancel"></i> Remove</button>
</li>
</ul>
</div>

View file

@ -37,7 +37,7 @@
<div class="margin-bottom-tiny text-one-liner">
<span data-ls-attrs="title={{task.name}} ({{task.failures}} errors)" data-ls-bind="{{task.name}}"></span>
<span data-ls-if="false === {{task.security}}" data-debug="1">
<span data-ls-if="false === {{task.security}}">
&nbsp; <span class="text-danger">SSL/TLS Disabled</span>
</span>
<span data-ls-if="0 !== {{task.failures}}">

View file

@ -137,7 +137,7 @@ $events = array_keys($this->getParam('events', []));
</form>
<span data-ls-bind="{{webhook.name}}"></span> &nbsp; (<span data-ls-bind="{{webhook.events.length}}"></span> events)
<span data-ls-if="false === {{webhook.security}}" data-debug="1">
<span data-ls-if="false === {{webhook.security}}">
&nbsp; <small class="text-danger">(SSL/TLS Disabled)</small>
</span>
<div class="margin-top-tiny">

View file

@ -42,6 +42,7 @@
"utopia-php/locale": "0.3.*",
"utopia-php/registry": "0.2.*",
"utopia-php/domains": "0.2.*",
"utopia-php/preloader": "0.1.*",
"resque/php-resque": "1.3.6",
"geoip2/geoip2": "2.9.0",

166
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "e784e5988f3c65a561242b2ab64d7a31",
"content-hash": "a95c05370522cef7f6042467a9adf219",
"packages": [
{
"name": "appwrite/php-clamav",
@ -198,21 +198,21 @@
},
{
"name": "dasprid/enum",
"version": "1.0.0",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/DASPRiD/Enum.git",
"reference": "631ef6e638e9494b0310837fa531bedd908fc22b"
"reference": "6ccc0d7141a7f149e3c56cb0ce5f05d9152cfd07"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/631ef6e638e9494b0310837fa531bedd908fc22b",
"reference": "631ef6e638e9494b0310837fa531bedd908fc22b",
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6ccc0d7141a7f149e3c56cb0ce5f05d9152cfd07",
"reference": "6ccc0d7141a7f149e3c56cb0ce5f05d9152cfd07",
"shasum": ""
},
"require-dev": {
"phpunit/phpunit": "^6.4",
"squizlabs/php_codesniffer": "^3.1"
"phpunit/phpunit": "^7 | ^8 | ^9",
"squizlabs/php_codesniffer": "^3.4"
},
"type": "library",
"autoload": {
@ -228,7 +228,8 @@
{
"name": "Ben Scholzen 'DASPRiD'",
"email": "mail@dasprids.de",
"homepage": "https://dasprids.de/"
"homepage": "https://dasprids.de/",
"role": "Developer"
}
],
"description": "PHP 7.1 enum implementation",
@ -236,7 +237,7 @@
"enum",
"map"
],
"time": "2017-10-25T22:45:27+00:00"
"time": "2020-07-30T16:37:13+00:00"
},
{
"name": "domnikl/statsd",
@ -638,29 +639,29 @@
},
{
"name": "maxmind-db/reader",
"version": "v1.6.0",
"version": "v1.7.0",
"source": {
"type": "git",
"url": "https://github.com/maxmind/MaxMind-DB-Reader-php.git",
"reference": "febd4920bf17c1da84cef58e56a8227dfb37fbe4"
"reference": "942553da239f12051275f9c666538b5dd09e2908"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/febd4920bf17c1da84cef58e56a8227dfb37fbe4",
"reference": "febd4920bf17c1da84cef58e56a8227dfb37fbe4",
"url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/942553da239f12051275f9c666538b5dd09e2908",
"reference": "942553da239f12051275f9c666538b5dd09e2908",
"shasum": ""
},
"require": {
"php": ">=5.6"
"php": ">=7.2"
},
"conflict": {
"ext-maxminddb": "<1.6.0,>=2.0.0"
"ext-maxminddb": "<1.7.0,>=2.0.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "2.*",
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpcov": "^3.0",
"phpunit/phpunit": "5.*",
"phpunit/phpcov": ">=6.0.0",
"phpunit/phpunit": ">=8.0.0,<10.0.0",
"squizlabs/php_codesniffer": "3.*"
},
"suggest": {
@ -694,7 +695,7 @@
"geolocation",
"maxmind"
],
"time": "2019-12-19T22:59:03+00:00"
"time": "2020-08-07T22:10:05+00:00"
},
{
"name": "maxmind/web-service-common",
@ -898,28 +899,32 @@
},
{
"name": "piwik/device-detector",
"version": "3.5.1",
"version": "3.12.6",
"source": {
"type": "git",
"url": "https://github.com/matomo-org/device-detector.git",
"reference": "29830f9bd67c8300e37828db0688161dd6f5f7a5"
"reference": "4eb7b6d4d1a2ac1e8fee64fc73698fcb869d60f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/matomo-org/device-detector/zipball/29830f9bd67c8300e37828db0688161dd6f5f7a5",
"reference": "29830f9bd67c8300e37828db0688161dd6f5f7a5",
"url": "https://api.github.com/repos/matomo-org/device-detector/zipball/4eb7b6d4d1a2ac1e8fee64fc73698fcb869d60f3",
"reference": "4eb7b6d4d1a2ac1e8fee64fc73698fcb869d60f3",
"shasum": ""
},
"require": {
"mustangostang/spyc": "*",
"php": ">=5.3.2"
"php": ">=5.5"
},
"require-dev": {
"fabpot/php-cs-fixer": "~1.7",
"phpunit/phpunit": "4.1.*"
"matthiasmullie/scrapbook": "@stable",
"phpunit/phpunit": "^4.8.36",
"psr/cache": "^1.0",
"psr/simple-cache": "^1.0"
},
"suggest": {
"doctrine/cache": "Can directly be used for caching purpose"
"doctrine/cache": "Can directly be used for caching purpose",
"ext-yaml": "Necessary for using the Pecl YAML parser"
},
"type": "library",
"autoload": {
@ -929,23 +934,23 @@
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0+"
"LGPL-3.0-or-later"
],
"authors": [
{
"name": "The Piwik Team",
"email": "hello@piwik.org",
"homepage": "http://piwik.org/the-piwik-team/"
"name": "The Matomo Team",
"email": "hello@matomo.org",
"homepage": "https://matomo.org/team/"
}
],
"description": "The Universal Device Detection library, that parses User Agents and detects devices (desktop, tablet, mobile, tv, cars, console, etc.), clients (browsers, media players, mobile apps, feed readers, libraries, etc), operating systems, devices, brands and models.",
"homepage": "http://piwik.org",
"homepage": "https://matomo.org",
"keywords": [
"devicedetection",
"parser",
"useragent"
],
"time": "2016-01-21T22:26:37+00:00"
"time": "2020-06-16T12:10:46+00:00"
},
{
"name": "psr/http-message",
@ -1169,12 +1174,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "bc6549d068d0160e0f10f7a5a23c7d1406b95ebe"
"reference": "045643b91eaa34c4c37150ac477765c13552af33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/bc6549d068d0160e0f10f7a5a23c7d1406b95ebe",
"reference": "bc6549d068d0160e0f10f7a5a23c7d1406b95ebe",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/045643b91eaa34c4c37150ac477765c13552af33",
"reference": "045643b91eaa34c4c37150ac477765c13552af33",
"shasum": ""
},
"require": {
@ -1246,7 +1251,7 @@
"type": "tidelift"
}
],
"time": "2020-07-14T12:35:20+00:00"
"time": "2020-08-04T21:02:56+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
@ -1766,16 +1771,16 @@
},
{
"name": "utopia-php/framework",
"version": "0.8.3",
"version": "0.8.4",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/framework.git",
"reference": "e21725bdb52c93dc4b0acade33f03e098f0ceae7"
"reference": "c5add2ac2cd31286bb086f19dd66cfaed00f9a85"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/framework/zipball/e21725bdb52c93dc4b0acade33f03e098f0ceae7",
"reference": "e21725bdb52c93dc4b0acade33f03e098f0ceae7",
"url": "https://api.github.com/repos/utopia-php/framework/zipball/c5add2ac2cd31286bb086f19dd66cfaed00f9a85",
"reference": "c5add2ac2cd31286bb086f19dd66cfaed00f9a85",
"shasum": ""
},
"require": {
@ -1806,7 +1811,7 @@
"php",
"upf"
],
"time": "2020-07-09T06:39:23+00:00"
"time": "2020-08-06T10:52:23+00:00"
},
{
"name": "utopia-php/locale",
@ -1854,6 +1859,54 @@
],
"time": "2020-06-29T20:53:16+00:00"
},
{
"name": "utopia-php/preloader",
"version": "0.1.0",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/preloader.git",
"reference": "43e126b6c056e9a2c6a6f31f996f774e0072a22f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/preloader/zipball/43e126b6c056e9a2c6a6f31f996f774e0072a22f",
"reference": "43e126b6c056e9a2c6a6f31f996f774e0072a22f",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"require-dev": {
"phpunit/phpunit": "^7.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Utopia\\Preloader\\": "src/Preloader"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Eldad Fux",
"email": "team@appwrite.io"
}
],
"description": "Utopia Preloader library is simple and lite library for managing PHP preloading configuration",
"keywords": [
"framework",
"php",
"preload",
"preloader",
"preloading",
"upf",
"utopia"
],
"time": "2020-08-14T17:34:39+00:00"
},
{
"name": "utopia-php/registry",
"version": "0.2.3",
@ -1909,7 +1962,7 @@
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator",
"reference": "4b3c02e27cb701f60406a4eac1c9561fd093d72a"
"reference": "43d15fc337bcbfe480f2a5503bd7c0615743035b"
},
"require": {
"ext-curl": "*",
@ -1939,7 +1992,7 @@
}
],
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"time": "2020-07-10T07:50:52+00:00"
"time": "2020-07-26T09:32:03+00:00"
},
{
"name": "doctrine/instantiator",
@ -2311,12 +2364,12 @@
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "eb3320ef010709f339f118dde1645e197c4961ec"
"reference": "584a54ca0dadeee4e07c959e24fe61ffa4df22a2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/eb3320ef010709f339f118dde1645e197c4961ec",
"reference": "eb3320ef010709f339f118dde1645e197c4961ec",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/584a54ca0dadeee4e07c959e24fe61ffa4df22a2",
"reference": "584a54ca0dadeee4e07c959e24fe61ffa4df22a2",
"shasum": ""
},
"require": {
@ -2355,7 +2408,7 @@
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"time": "2020-07-09T12:42:26+00:00"
"time": "2020-08-12T17:52:10+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@ -2671,7 +2724,7 @@
},
{
"name": "phpunit/php-token-stream",
"version": "3.1.1",
"version": "3.1.x-dev",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
@ -2716,6 +2769,7 @@
"keywords": [
"tokenizer"
],
"abandoned": true,
"time": "2019-09-17T06:23:10+00:00"
},
{
@ -3607,12 +3661,12 @@
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "e063bab1a67f4ceea759cee20c10ed609d1f6abb"
"reference": "b531196d8cfaa485d7ff84d37b19668d8d6b254b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e063bab1a67f4ceea759cee20c10ed609d1f6abb",
"reference": "e063bab1a67f4ceea759cee20c10ed609d1f6abb",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/b531196d8cfaa485d7ff84d37b19668d8d6b254b",
"reference": "b531196d8cfaa485d7ff84d37b19668d8d6b254b",
"shasum": ""
},
"require": {
@ -3664,7 +3718,17 @@
"keywords": [
"templating"
],
"time": "2020-07-06T13:35:12+00:00"
"funding": [
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/twig/twig",
"type": "tidelift"
}
],
"time": "2020-08-13T14:11:59+00:00"
},
{
"name": "webmozart/assert",

View file

@ -1,139 +0,0 @@
<?php
namespace Appwrite\Preloader;
class Preloader
{
/**
* @var array
*/
protected $ignores = [];
/**
* @var array
*/
protected $paths = [];
/**
* @var array
*/
protected $included = [];
public function __construct(string ...$paths)
{
$this->paths = $paths;
$classMap = require __DIR__.'/../../../vendor/composer/autoload_classmap.php';
$this->paths = \array_merge(
$this->paths,
\array_values($classMap)
);
}
public function paths(string ...$paths): self
{
$this->paths = \array_merge(
$this->paths,
$paths
);
return $this;
}
public function ignore(string ...$names): self
{
foreach($names as $name) {
if(is_readable($name)) {
$this->ignores[] = $name;
}
else {
echo "[Preloader] Failed to ignore path `{$name}`".PHP_EOL;
}
}
return $this;
}
public function load(): void
{
$this->included = get_included_files();
foreach ($this->paths as $path) {
$this->loadPath(\rtrim($path, '/'));
}
$already = count($this->included);
//echo "[Preloader] Preloaded {$already} files.".PHP_EOL;
}
private function loadPath(string $path): void
{
if (\is_dir($path)) {
$this->loadDir($path);
return;
}
$this->loadFile($path);
}
private function loadDir(string $path): void
{
$handle = \opendir($path);
while ($file = \readdir($handle)) {
if (\in_array($file, ['.', '..'])) {
continue;
}
$this->loadPath("{$path}/{$file}");
}
\closedir($handle);
}
private function loadFile(string $path): void
{
if ($this->shouldIgnore($path)) {
return;
}
if(in_array(realpath($path), $this->included)) {
// echo "[Preloader] Skiped `{$path}`".PHP_EOL;
return;
}
// echo "[Preloader] Preloaded `{$path}`".PHP_EOL;
try {
// opcache_compile_file($path);
require $path;
} catch (\Throwable $th) {
echo "[Preloader] Failed to load `{$path}`: ".$th->getMessage().PHP_EOL;
return;
}
$this->included = array_merge(get_included_files(), [realpath($path)]);
}
private function shouldIgnore(?string $path): bool
{
if($path === null) {
return true;
}
if(!\in_array(\pathinfo($path, PATHINFO_EXTENSION), ['php'])) {
return true;
}
foreach ($this->ignores as $ignore) {
if (\strpos($path, $ignore) === 0) {
return true;
}
}
return false;
}
}

View file

@ -2,7 +2,7 @@
namespace Appwrite\Swoole;
use Appwrite\Utopia\Response as UtopiaResponse;
use Utopia\Response as UtopiaResponse;
use Swoole\Http\Response as SwooleResponse;
class Response extends UtopiaResponse

View file

@ -4,6 +4,8 @@ namespace Appwrite\Utopia;
use Exception;
use Appwrite\Database\Document;
use Appwrite\Swoole\Response as SwooleResponse;
use Swoole\Http\Response as SwooleHTTPResponse;
use Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response\Model\BaseList;
use Appwrite\Utopia\Response\Model\Error;
@ -17,9 +19,9 @@ use Appwrite\Utopia\Response\Model\Team;
use Appwrite\Utopia\Response\Model\Locale;
use Appwrite\Utopia\Response\Model\Membership;
use Appwrite\Utopia\Response\Model\Tag;
use Utopia\Response as UtopiaResponse;
use Appwrite\Utopia\Response\Model\Webhook;
class Response extends UtopiaResponse
class Response extends SwooleResponse
{
// General
const MODEL_LOG = 'log'; // - Missing
@ -64,11 +66,25 @@ class Response extends UtopiaResponse
const MODEL_TAG_LIST = 'tagList';
const MODEL_EXECUTION = 'execution';
const MODEL_EXECUTION_LIST = 'executionList';
// Project
const MODEL_PROJECT = 'project';
const MODEL_PROJECT_LIST = 'projectsList';
const MODEL_WEBHOOK = 'webhook';
const MODEL_WEBHOOK_LIST = 'webhookList';
const MODEL_KEY = 'key';
const MODEL_KEY_LIST = 'keyList';
const MODEL_TASK = 'task';
const MODEL_TASK_LIST = 'taskList';
const MODEL_PLATFORM = 'platform';
const MODEL_PLATFORM_LIST = 'platformList';
const MODEL_DOMAIN = 'domain';
const MODEL_DOMAIN_LIST = 'domainList';
/**
* Response constructor.
*/
public function __construct(int $time = 0)
public function __construct(SwooleHTTPResponse $response)
{
$this
// General
@ -83,6 +99,12 @@ class Response extends UtopiaResponse
->setModel(new BaseList('Functions List', self::MODEL_FUNCTION_LIST, 'functions', self::MODEL_FUNCTION))
->setModel(new BaseList('Tags List', self::MODEL_TAG_LIST, 'tags', self::MODEL_TAG))
->setModel(new BaseList('Executions List', self::MODEL_EXECUTION_LIST, 'executions', self::MODEL_EXECUTION))
->setModel(new BaseList('Projects List', self::MODEL_EXECUTION_LIST, 'projects', self::MODEL_EXECUTION))
->setModel(new BaseList('Webhooks List', self::MODEL_EXECUTION_LIST, 'webhooks', self::MODEL_EXECUTION))
->setModel(new BaseList('API Keys List', self::MODEL_EXECUTION_LIST, 'keyss', self::MODEL_EXECUTION))
->setModel(new BaseList('Tasks List', self::MODEL_EXECUTION_LIST, 'tasks', self::MODEL_EXECUTION))
->setModel(new BaseList('Platforms List', self::MODEL_EXECUTION_LIST, 'platforms', self::MODEL_EXECUTION))
->setModel(new BaseList('Domains List', self::MODEL_EXECUTION_LIST, 'domains', self::MODEL_EXECUTION))
// Entities
->setModel(new User())
->setModel(new Session())
@ -93,9 +115,10 @@ class Response extends UtopiaResponse
->setModel(new Func())
->setModel(new Tag())
->setModel(new Execution())
->setModel(new Webhook())
;
parent::__construct($time);
parent::__construct($response);
}
/**

View file

@ -56,7 +56,7 @@ class Func extends Model
'type' => 'string',
'description' => 'Function trigger events.',
'default' => [],
'example' => 'account.create',
'example' => ['account.create'],
'array' => true,
])
->addRule('schedule', [

View file

@ -0,0 +1,96 @@
<?php
namespace Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Model;
class Task extends Model
{
public function __construct()
{
$this
->addRule('$id', [
'type' => 'string',
'description' => 'Task ID.',
'example' => '5e5ea5c16897e',
])
->addRule('name', [
'type' => 'string',
'description' => 'Task name.',
'example' => 'My Task',
])
->addRule('security', [
'type' => 'boolean',
'description' => 'Indicated if SSL / TLS Certificate verification is enabled.',
'example' => true,
])
->addRule('httpMethod', [
'type' => 'string',
'description' => 'Task HTTP Method.',
'example' => 'POST',
])
->addRule('httpUrl', [
'type' => 'string',
'description' => 'Task HTTP URL.',
'example' => 'https://example.com/task',
])
->addRule('httpHeaders', [
'type' => 'string',
'description' => 'Task HTTP headers.',
'default' => [],
'example' => ['key:value'],
'array' => true,
])
->addRule('httpUser', [
'type' => 'string',
'description' => 'HTTP basic authentication username.',
'default' => '',
'example' => 'username',
])
->addRule('httpPass', [
'type' => 'string',
'description' => 'HTTP basic authentication password.',
'default' => '',
'example' => 'password',
])
->addRule('duration', [
'type' => 'integer',
'description' => 'Task duration in seconds.',
'default' => 0,
'example' => 1.2,
])
;
}
/*
delay: 6
failures: 5
log: "[{"code":411,"duration":1.82,"delay":6,"errors":["Request failed with status code 411"],"headers":"HTTP\/1.1 411 Length Required\r\nContent-Type: text\/html\r\nContent-Length: 357\r\nConnection: close\r\nDate: Sat, 21 Mar 2020 21:22:08 GMT\r\nServer: ECSF (nyb\/1D33)\r\n\r\n","body":""},{"code":411,"duration":1.86,"delay":4,"errors":["Request failed with status code 411"],"headers":"HTTP\/1.1 411 Length Required\r\nContent-Type: text\/html\r\nContent-Length: 357\r\nConnection: close\r\nDate: Sat, 21 Mar 2020 21:21:06 GMT\r\nServer: ECSF (nyb\/1D32)\r\n\r\n","body":""},{"code":411,"duration":1.82,"delay":2,"errors":["Request failed with status code 411"],"headers":"HTTP\/1.1 411 Length Required\r\nContent-Type: text\/html\r\nContent-Length: 357\r\nConnection: close\r\nDate: Sat, 21 Mar 2020 21:20:04 GMT\r\nServer: ECSF (nyb\/1D0A)\r\n\r\n","body":""},{"code":411,"duration":1.49,"delay":6,"errors":["Request failed with status code 411"],"headers":"HTTP\/1.1 411 Length Required\r\nContent-Type: text\/html\r\nContent-Length: 357\r\nConnection: close\r\nDate: Sat, 21 Mar 2020 21:19:07 GMT\r\nServer: ECSF (nyb\/1D04)\r\n\r\n","body":""},{"code":411,"duration":2.18,"delay":4,"errors":["Request failed with status code 411"],"headers":"HTTP\/1.1 411 Length Required\r\nContent-Type: text\/html\r\nContent-Length: 357\r\nConnection: close\r\nDate: Sat, 21 Mar 2020 21:18:05 GMT\r\nServer: ECSF (nyb\/1D23)\r\n\r\n","body":""}]"
schedule: "* * * * *"
status: "pause"
updated: 1594494053
previous: 1584825726
next: "1597439760"
*/
/**
* Get Name
*
* @return string
*/
public function getName():string
{
return 'Webhook';
}
/**
* Get Collection
*
* @return string
*/
public function getType():string
{
return Response::MODEL_WEBHOOK;
}
}

View file

@ -0,0 +1,74 @@
<?php
namespace Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Model;
class Webhook extends Model
{
public function __construct()
{
$this
->addRule('$id', [
'type' => 'string',
'description' => 'Webhook ID.',
'example' => '5e5ea5c16897e',
])
->addRule('name', [
'type' => 'string',
'description' => 'Webhook name.',
'example' => 'My Webhook',
])
->addRule('url', [
'type' => 'string',
'description' => 'Webhook URL endpoint.',
'example' => 'https://example.com/webhook',
])
->addRule('events', [
'type' => 'string',
'description' => 'Function trigger events.',
'default' => [],
'example' => ['database.collections.update', 'database.collections.delete'],
'array' => true,
])
->addRule('security', [
'type' => 'boolean',
'description' => 'Indicated if SSL / TLS Certificate verification is enabled.',
'example' => true,
])
->addRule('httpUser', [
'type' => 'string',
'description' => 'HTTP basic authentication username.',
'default' => '',
'example' => 'username',
])
->addRule('httpPass', [
'type' => 'string',
'description' => 'HTTP basic authentication password.',
'default' => '',
'example' => 'password',
])
;
}
/**
* Get Name
*
* @return string
*/
public function getName():string
{
return 'Webhook';
}
/**
* Get Collection
*
* @return string
*/
public function getType():string
{
return Response::MODEL_WEBHOOK;
}
}