Implement endpoint to transfer project to a team

This commit is contained in:
Matej Bačo
2022-12-29 23:43:39 +01:00
parent bc2d8c44c5
commit ab8617f8a9
+42
View File
@@ -646,6 +646,48 @@ App::delete('/v1/projects/:projectId')
$response->noContent();
});
App::patch('/v1/projects/:projectId/team')
->desc('Update Project Team')
->groups(['api', 'projects'])
->label('scope', 'projects.write')
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN])
->label('sdk.namespace', 'projects')
->label('sdk.method', 'updateTeam')
->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('teamId', '', new UID(), 'New Team ID.')
->inject('response')
->inject('user')
->inject('dbForConsole')
->inject('deletes')
->action(function (string $projectId, string $teamId, Response $response, Document $user, Database $dbForConsole, Delete $deletes) {
// TODO: Must be owner of project
$project = $dbForConsole->getDocument('projects', $projectId);
if ($project->isEmpty()) {
throw new Exception(Exception::PROJECT_NOT_FOUND);
}
$team = $dbForConsole->getDocument('teams', $teamId);
if ($team->isEmpty()) {
throw new Exception(Exception::TEAM_NOT_FOUND);
}
$project
->setAttribute('teamId', $team->getId())
->setAttribute('teamInternalId', $team->getInternalId())
;
$project = $dbForConsole->updateDocument('projects', $project->getId(), $project);
$response->dynamic($project, Response::MODEL_PROJECT);
});
// Webhooks
App::post('/v1/projects/:projectId/webhooks')