diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 1929282a1..34f6c4440 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -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 */ diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index fa72497d6..082013f2c 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -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 = [ diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index be26ed633..27cb285a2 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -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 */ diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index 3863efdff..398cda81f 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -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 */ diff --git a/app/controllers/api/health.php b/app/controllers/api/health.php index d0f26a833..4caeda20d 100644 --- a/app/controllers/api/health.php +++ b/app/controllers/api/health.php @@ -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'); diff --git a/app/controllers/api/locale.php b/app/controllers/api/locale.php index c1fdec8f6..d8b22700d 100644 --- a/app/controllers/api/locale.php +++ b/app/controllers/api/locale.php @@ -1,7 +1,7 @@ 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'); diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 116cb6cfb..0d5b18d53 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -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); diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 25aecb3b0..01c861bce 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -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 */ diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index a06cb8f9f..84745ae16 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -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 */ diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index e6cac3c76..9e5c1e404 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -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); diff --git a/app/controllers/general.php b/app/controllers/general.php index c99a962d5..320ed5595 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -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, diff --git a/app/controllers/mock.php b/app/controllers/mock.php index 0f47ba5ad..d7a73f363 100644 --- a/app/controllers/mock.php +++ b/app/controllers/mock.php @@ -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); diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 42beb96a3..ebf074590 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -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 */ diff --git a/app/controllers/shared/web.php b/app/controllers/shared/web.php index ea7abda0e..4b104864a 100644 --- a/app/controllers/shared/web.php +++ b/app/controllers/shared/web.php @@ -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 */ diff --git a/app/controllers/web/console.php b/app/controllers/web/console.php index 1024d4f64..a3ef0185c 100644 --- a/app/controllers/web/console.php +++ b/app/controllers/web/console.php @@ -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 */ diff --git a/app/controllers/web/home.php b/app/controllers/web/home.php index e6a81e944..8ab788711 100644 --- a/app/controllers/web/home.php +++ b/app/controllers/web/home.php @@ -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' => []], diff --git a/app/http.php b/app/http.php index f5438cad9..a78aa2a6d 100644 --- a/app/http.php +++ b/app/http.php @@ -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; diff --git a/app/init.php b/app/init.php index 6d2cb1cff..fc8101410 100644 --- a/app/init.php +++ b/app/init.php @@ -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 */ diff --git a/app/preload.php b/app/preload.php index 63d08c3e1..4a4551abc 100644 --- a/app/preload.php +++ b/app/preload.php @@ -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'; diff --git a/app/views/console/database/rules/array.phtml b/app/views/console/database/rules/array.phtml index 8cc93b3c4..b51245857 100644 --- a/app/views/console/database/rules/array.phtml +++ b/app/views/console/database/rules/array.phtml @@ -29,7 +29,7 @@ if($type === 'document') {
  • - +
  • diff --git a/app/views/console/tasks/index.phtml b/app/views/console/tasks/index.phtml index 4c906fba9..ab4b09270 100644 --- a/app/views/console/tasks/index.phtml +++ b/app/views/console/tasks/index.phtml @@ -37,7 +37,7 @@
    - +   SSL/TLS Disabled diff --git a/app/views/console/webhooks/index.phtml b/app/views/console/webhooks/index.phtml index 264f50622..d2f8f42d0 100644 --- a/app/views/console/webhooks/index.phtml +++ b/app/views/console/webhooks/index.phtml @@ -137,7 +137,7 @@ $events = array_keys($this->getParam('events', []));   ( events) - +   (SSL/TLS Disabled)
    diff --git a/composer.json b/composer.json index a72697854..5850ecb12 100644 --- a/composer.json +++ b/composer.json @@ -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", diff --git a/composer.lock b/composer.lock index e8d1464ac..5ad28f954 100644 --- a/composer.lock +++ b/composer.lock @@ -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", diff --git a/src/Appwrite/Preloader/Preloader.php b/src/Appwrite/Preloader/Preloader.php deleted file mode 100644 index 9903c3568..000000000 --- a/src/Appwrite/Preloader/Preloader.php +++ /dev/null @@ -1,139 +0,0 @@ -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; - } -} \ No newline at end of file diff --git a/src/Appwrite/Swoole/Response.php b/src/Appwrite/Swoole/Response.php index 88ab1fcd4..3cc5f1187 100644 --- a/src/Appwrite/Swoole/Response.php +++ b/src/Appwrite/Swoole/Response.php @@ -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 diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index 11bd52a28..e1bf6bd60 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -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); } /** diff --git a/src/Appwrite/Utopia/Response/Model/Func.php b/src/Appwrite/Utopia/Response/Model/Func.php index dbe563913..753608226 100644 --- a/src/Appwrite/Utopia/Response/Model/Func.php +++ b/src/Appwrite/Utopia/Response/Model/Func.php @@ -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', [ diff --git a/src/Appwrite/Utopia/Response/Model/Task.php b/src/Appwrite/Utopia/Response/Model/Task.php new file mode 100644 index 000000000..b9efc19d2 --- /dev/null +++ b/src/Appwrite/Utopia/Response/Model/Task.php @@ -0,0 +1,96 @@ +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; + } +} \ No newline at end of file diff --git a/src/Appwrite/Utopia/Response/Model/Webhook.php b/src/Appwrite/Utopia/Response/Model/Webhook.php new file mode 100644 index 000000000..dd2bd9adb --- /dev/null +++ b/src/Appwrite/Utopia/Response/Model/Webhook.php @@ -0,0 +1,74 @@ +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; + } +} \ No newline at end of file