From 76cd8251126ae81845cdbe8a7af99a8f9f29fe1d Mon Sep 17 00:00:00 2001 From: Everly Precia Suresh Date: Tue, 3 May 2022 11:57:26 +0000 Subject: [PATCH 1/3] refactor teams.php --- app/controllers/api/teams.php | 66 ++++++++--------------------------- 1 file changed, 15 insertions(+), 51 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 22705d3bf8..9d2723f3e3 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -2,13 +2,16 @@ use Appwrite\Auth\Auth; use Appwrite\Detector\Detector; +use Appwrite\Event\Event; +use Appwrite\Extend\Exception; use Appwrite\Network\Validator\Email; use Appwrite\Network\Validator\Host; use Appwrite\Template\Template; use Appwrite\Utopia\Database\Validator\CustomId; +use Appwrite\Utopia\Request; use Appwrite\Utopia\Response; +use MaxMind\Db\Reader; use Utopia\App; -use Appwrite\Extend\Exception; use Utopia\Config\Config; use Utopia\Database\Database; use Utopia\Database\Document; @@ -42,11 +45,7 @@ App::post('/v1/teams') ->inject('user') ->inject('dbForProject') ->inject('events') - ->action(function ($teamId, $name, $roles, $response, $user, $dbForProject, $events) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Document $user */ - /** @var Utopia\Database\Database $dbForProject */ - /** @var Appwrite\Event\Event $events */ + ->action(function ($teamId, $name, $roles, Response $response, Document $user, Database $dbForProject, Event $events) { $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); $isAppUser = Auth::isAppUser(Authorization::getRoles()); @@ -112,9 +111,7 @@ App::get('/v1/teams') ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) ->inject('response') ->inject('dbForProject') - ->action(function ($search, $limit, $offset, $cursor, $cursorDirection, $orderType, $response, $dbForProject) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForProject */ + ->action(function ($search, $limit, $offset, $cursor, $cursorDirection, $orderType, Response $response, Database $dbForProject) { if (!empty($cursor)) { $cursorTeam = $dbForProject->getDocument('teams', $cursor); @@ -153,9 +150,7 @@ App::get('/v1/teams/:teamId') ->param('teamId', '', new UID(), 'Team ID.') ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, $response, $dbForProject) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForProject */ + ->action(function ($teamId, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -182,9 +177,7 @@ App::put('/v1/teams/:teamId') ->param('name', null, new Text(128), 'New team name. Max length: 128 chars.') ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, $name, $response, $dbForProject) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForProject */ + ->action(function ($teamId, $name, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -216,11 +209,7 @@ App::delete('/v1/teams/:teamId') ->inject('dbForProject') ->inject('events') ->inject('deletes') - ->action(function ($teamId, $response, $dbForProject, $events, $deletes) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForProject */ - /** @var Appwrite\Event\Event $events */ - /** @var Appwrite\Event\Event $deletes */ + ->action(function ($teamId, Response $response, Database $dbForProject, Event $events, Event $deletes) { $team = $dbForProject->getDocument('teams', $teamId); @@ -281,13 +270,7 @@ App::post('/v1/teams/:teamId/memberships') ->inject('locale') ->inject('audits') ->inject('mails') - ->action(function ($teamId, $email, $roles, $url, $name, $response, $project, $user, $dbForProject, $locale, $audits, $mails) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Document $project */ - /** @var Utopia\Database\Document $user */ - /** @var Utopia\Database\Database $dbForProject */ - /** @var Appwrite\Event\Event $audits */ - /** @var Appwrite\Event\Event $mails */ + ->action(function ($teamId, $email, $roles, $url, $name, Response $response, Document $project, Document $user, Database $dbForProject, $locale, Event $audits, Event $mails) { if(empty(App::getEnv('_APP_SMTP_HOST'))) { throw new Exception('SMTP Disabled', 503, Exception::GENERAL_SMTP_DISABLED); @@ -445,9 +428,7 @@ App::get('/v1/teams/:teamId/memberships') ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, $search, $limit, $offset, $cursor, $cursorDirection, $orderType, $response, $dbForProject) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForProject */ + ->action(function ($teamId, $search, $limit, $offset, $cursor, $cursorDirection, $orderType, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -519,9 +500,7 @@ App::get('/v1/teams/:teamId/memberships/:membershipId') ->param('membershipId', '', new UID(), 'Membership ID.') ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, $membershipId, $response, $dbForProject) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForProject */ + ->action(function ($teamId, $membershipId, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -565,12 +544,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') ->inject('user') ->inject('dbForProject') ->inject('audits') - ->action(function ($teamId, $membershipId, $roles, $request, $response, $user, $dbForProject, $audits) { - /** @var Appwrite\Utopia\Request $request */ - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Document $user */ - /** @var Utopia\Database\Database $dbForProject */ - /** @var Appwrite\Event\Event $audits */ + ->action(function ($teamId, $membershipId, $roles, Request $request, Response $response, Document $user, Database $dbForProject, Event $audits) { $team = $dbForProject->getDocument('teams', $teamId); if ($team->isEmpty()) { @@ -647,13 +621,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') ->inject('dbForProject') ->inject('geodb') ->inject('audits') - ->action(function ($teamId, $membershipId, $userId, $secret, $request, $response, $user, $dbForProject, $geodb, $audits) { - /** @var Appwrite\Utopia\Request $request */ - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Document $user */ - /** @var Utopia\Database\Database $dbForProject */ - /** @var MaxMind\Db\Reader $geodb */ - /** @var Appwrite\Event\Event $audits */ + ->action(function ($teamId, $membershipId, $userId, $secret, Request $request, Response $response, Document $user, Database $dbForProject, Reader $geodb, Event $audits) { $protocol = $request->getProtocol(); @@ -777,11 +745,7 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId') ->inject('dbForProject') ->inject('audits') ->inject('events') - ->action(function ($teamId, $membershipId, $response, $dbForProject, $audits, $events) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Utopia\Database\Database $dbForProject */ - /** @var Appwrite\Event\Event $audits */ - /** @var Appwrite\Event\Event $events */ + ->action(function ($teamId, $membershipId, Response $response, Database $dbForProject, Event $audits, Event $events) { $membership = $dbForProject->getDocument('memberships', $membershipId); From 20b4119ee988f5bf94ef673b91fa2e36f0e8a171 Mon Sep 17 00:00:00 2001 From: Everly Precia Suresh Date: Tue, 3 May 2022 13:21:25 +0000 Subject: [PATCH 2/3] add primitive types to params --- app/controllers/api/teams.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 9d2723f3e3..22ac091e6f 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -45,7 +45,7 @@ App::post('/v1/teams') ->inject('user') ->inject('dbForProject') ->inject('events') - ->action(function ($teamId, $name, $roles, Response $response, Document $user, Database $dbForProject, Event $events) { + ->action(function (string $teamId, string $name, array $roles, Response $response, Document $user, Database $dbForProject, Event $events) { $isPrivilegedUser = Auth::isPrivilegedUser(Authorization::getRoles()); $isAppUser = Auth::isAppUser(Authorization::getRoles()); @@ -111,7 +111,7 @@ App::get('/v1/teams') ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) ->inject('response') ->inject('dbForProject') - ->action(function ($search, $limit, $offset, $cursor, $cursorDirection, $orderType, Response $response, Database $dbForProject) { + ->action(function (string $search, int $limit, int $offset, string $cursor, string $cursorDirection, string $orderType, Response $response, Database $dbForProject) { if (!empty($cursor)) { $cursorTeam = $dbForProject->getDocument('teams', $cursor); @@ -150,7 +150,7 @@ App::get('/v1/teams/:teamId') ->param('teamId', '', new UID(), 'Team ID.') ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, Response $response, Database $dbForProject) { + ->action(function (string $teamId, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -177,7 +177,7 @@ App::put('/v1/teams/:teamId') ->param('name', null, new Text(128), 'New team name. Max length: 128 chars.') ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, $name, Response $response, Database $dbForProject) { + ->action(function (string $teamId, string $name, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -209,7 +209,7 @@ App::delete('/v1/teams/:teamId') ->inject('dbForProject') ->inject('events') ->inject('deletes') - ->action(function ($teamId, Response $response, Database $dbForProject, Event $events, Event $deletes) { + ->action(function (string $teamId, Response $response, Database $dbForProject, Event $events, Event $deletes) { $team = $dbForProject->getDocument('teams', $teamId); @@ -270,7 +270,7 @@ App::post('/v1/teams/:teamId/memberships') ->inject('locale') ->inject('audits') ->inject('mails') - ->action(function ($teamId, $email, $roles, $url, $name, Response $response, Document $project, Document $user, Database $dbForProject, $locale, Event $audits, Event $mails) { + ->action(function (string $teamId, string $email, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, $locale, Event $audits, Event $mails) { if(empty(App::getEnv('_APP_SMTP_HOST'))) { throw new Exception('SMTP Disabled', 503, Exception::GENERAL_SMTP_DISABLED); @@ -428,7 +428,7 @@ App::get('/v1/teams/:teamId/memberships') ->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true) ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, $search, $limit, $offset, $cursor, $cursorDirection, $orderType, Response $response, Database $dbForProject) { + ->action(function (string $teamId, string $search, int $limit, int $offset, string $cursor, string $cursorDirection, string $orderType, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -500,7 +500,7 @@ App::get('/v1/teams/:teamId/memberships/:membershipId') ->param('membershipId', '', new UID(), 'Membership ID.') ->inject('response') ->inject('dbForProject') - ->action(function ($teamId, $membershipId, Response $response, Database $dbForProject) { + ->action(function (string $teamId, string $membershipId, Response $response, Database $dbForProject) { $team = $dbForProject->getDocument('teams', $teamId); @@ -544,7 +544,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') ->inject('user') ->inject('dbForProject') ->inject('audits') - ->action(function ($teamId, $membershipId, $roles, Request $request, Response $response, Document $user, Database $dbForProject, Event $audits) { + ->action(function (string $teamId, string $membershipId, array $roles, Request $request, Response $response, Document $user, Database $dbForProject, Event $audits) { $team = $dbForProject->getDocument('teams', $teamId); if ($team->isEmpty()) { @@ -621,7 +621,7 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId/status') ->inject('dbForProject') ->inject('geodb') ->inject('audits') - ->action(function ($teamId, $membershipId, $userId, $secret, Request $request, Response $response, Document $user, Database $dbForProject, Reader $geodb, Event $audits) { + ->action(function (string $teamId, string $membershipId, string $userId, string $secret, Request $request, Response $response, Document $user, Database $dbForProject, Reader $geodb, Event $audits) { $protocol = $request->getProtocol(); @@ -745,7 +745,7 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId') ->inject('dbForProject') ->inject('audits') ->inject('events') - ->action(function ($teamId, $membershipId, Response $response, Database $dbForProject, Event $audits, Event $events) { + ->action(function (string $teamId, string $membershipId, Response $response, Database $dbForProject, Event $audits, Event $events) { $membership = $dbForProject->getDocument('memberships', $membershipId); From 65a246bd218896ea3f4690855f6c00946e73bcf9 Mon Sep 17 00:00:00 2001 From: Everly Precia Suresh Date: Wed, 4 May 2022 09:51:48 +0000 Subject: [PATCH 3/3] add type for locale --- app/controllers/api/teams.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index 22ac091e6f..f956d7e2ef 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -21,6 +21,7 @@ use Utopia\Database\Query; use Utopia\Database\Validator\Authorization; use Utopia\Database\Validator\Key; use Utopia\Database\Validator\UID; +use Utopia\Locale\Locale; use Utopia\Validator\Text; use Utopia\Validator\Range; use Utopia\Validator\ArrayList; @@ -270,7 +271,7 @@ App::post('/v1/teams/:teamId/memberships') ->inject('locale') ->inject('audits') ->inject('mails') - ->action(function (string $teamId, string $email, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, $locale, Event $audits, Event $mails) { + ->action(function (string $teamId, string $email, array $roles, string $url, string $name, Response $response, Document $project, Document $user, Database $dbForProject, Locale $locale, Event $audits, Event $mails) { if(empty(App::getEnv('_APP_SMTP_HOST'))) { throw new Exception('SMTP Disabled', 503, Exception::GENERAL_SMTP_DISABLED);