diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 106784b38c..5c350d2b99 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -442,6 +442,40 @@ App::patch('/v1/projects/:projectId/oauth2') $response->dynamic($project, Response::MODEL_PROJECT); }); +App::patch('/v1/projects/:projectId/auth/limit') + ->desc('Update Project users limit') + ->groups(['api', 'projects']) + ->label('scope', 'projects.write') + ->label('sdk.namespace', 'projects') + ->label('sdk.method', 'updateAuthLimit') + ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) + ->label('sdk.response.model', Response::MODEL_PROJECT) + ->param('projectId', '', new UID(), 'Project unique ID.') + ->param('limit', false, new Integer(true), 'Set the max number of users allowed in this project. Use 0 for unlimited.') + ->inject('response') + ->inject('consoleDB') + ->action(function ($projectId, $limit, $response, $consoleDB) { + /** @var Appwrite\Utopia\Response $response */ + /** @var Appwrite\Database\Database $consoleDB */ + + $project = $consoleDB->getDocument($projectId); + + if (empty($project->getId()) || Database::SYSTEM_COLLECTION_PROJECTS != $project->getCollection()) { + throw new Exception('Project not found', 404); + } + + if (false === $consoleDB->updateDocument( + \array_merge($project->getArrayCopy(), [ + 'usersAuthLimit' => $limit, + ])) + ) { + throw new Exception('Failed saving project to DB', 500); + }; + + $response->dynamic($project, Response::MODEL_PROJECT); + }); + App::patch('/v1/projects/:projectId/auth/:method') ->desc('Update Project auth method status. Use this endpoint to enable or disable a given auth method for this project.') ->groups(['api', 'projects']) @@ -480,40 +514,6 @@ App::patch('/v1/projects/:projectId/auth/:method') $response->dynamic($project, Response::MODEL_PROJECT); }); -App::patch('/v1/projects/:projectId/auth/limit') - ->desc('Update Project users limit') - ->groups(['api', 'projects']) - ->label('scope', 'projects.write') - ->label('sdk.namespace', 'projects') - ->label('sdk.method', 'updateAuthLimit') - ->label('sdk.response.code', Response::STATUS_CODE_OK) - ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) - ->label('sdk.response.model', Response::MODEL_PROJECT) - ->param('projectId', '', new UID(), 'Project unique ID.') - ->param('limit', false, new Integer(true), 'Set the max number of users allowed in this project. Use 0 for unlimited.') - ->inject('response') - ->inject('consoleDB') - ->action(function ($projectId, $limit, $response, $consoleDB) { - /** @var Appwrite\Utopia\Response $response */ - /** @var Appwrite\Database\Database $consoleDB */ - - $project = $consoleDB->getDocument($projectId); - - if (empty($project->getId()) || Database::SYSTEM_COLLECTION_PROJECTS != $project->getCollection()) { - throw new Exception('Project not found', 404); - } - - if (false === $consoleDB->updateDocument( - \array_merge($project->getArrayCopy(), [ - 'usersAuthLimit' => $limit, - ])) - ) { - throw new Exception('Failed saving project to DB', 500); - }; - - $response->dynamic($project, Response::MODEL_PROJECT); - }); - App::delete('/v1/projects/:projectId') ->desc('Delete Project') ->groups(['api', 'projects'])