mirror of
https://github.com/appwrite/appwrite
synced 2026-05-24 09:28:40 +00:00
Merge pull request #10436 from appwrite/fix-put-prefs
Fix put prefs structure validation
This commit is contained in:
commit
f8e48b9d35
1 changed files with 17 additions and 3 deletions
|
|
@ -36,6 +36,7 @@ use Utopia\Database\Exception\Authorization as AuthorizationException;
|
||||||
use Utopia\Database\Exception\Duplicate;
|
use Utopia\Database\Exception\Duplicate;
|
||||||
use Utopia\Database\Exception\Order as OrderException;
|
use Utopia\Database\Exception\Order as OrderException;
|
||||||
use Utopia\Database\Exception\Query as QueryException;
|
use Utopia\Database\Exception\Query as QueryException;
|
||||||
|
use Utopia\Database\Exception\Structure as StructureException;
|
||||||
use Utopia\Database\Helpers\ID;
|
use Utopia\Database\Helpers\ID;
|
||||||
use Utopia\Database\Helpers\Permission;
|
use Utopia\Database\Helpers\Permission;
|
||||||
use Utopia\Database\Helpers\Role;
|
use Utopia\Database\Helpers\Role;
|
||||||
|
|
@ -282,7 +283,13 @@ App::get('/v1/teams/:teamId/prefs')
|
||||||
|
|
||||||
$prefs = $team->getAttribute('prefs', []);
|
$prefs = $team->getAttribute('prefs', []);
|
||||||
|
|
||||||
$response->dynamic(new Document($prefs), Response::MODEL_PREFERENCES);
|
try {
|
||||||
|
$prefs = new Document($prefs);
|
||||||
|
} catch (StructureException $e) {
|
||||||
|
throw new Exception(Exception::DOCUMENT_INVALID_STRUCTURE, $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
$response->dynamic($prefs, Response::MODEL_PREFERENCES);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::put('/v1/teams/:teamId')
|
App::put('/v1/teams/:teamId')
|
||||||
|
|
@ -357,6 +364,11 @@ App::put('/v1/teams/:teamId/prefs')
|
||||||
->inject('dbForProject')
|
->inject('dbForProject')
|
||||||
->inject('queueForEvents')
|
->inject('queueForEvents')
|
||||||
->action(function (string $teamId, array $prefs, Response $response, Database $dbForProject, Event $queueForEvents) {
|
->action(function (string $teamId, array $prefs, Response $response, Database $dbForProject, Event $queueForEvents) {
|
||||||
|
try {
|
||||||
|
$prefs = new Document($prefs);
|
||||||
|
} catch (StructureException $e) {
|
||||||
|
throw new Exception(Exception::DOCUMENT_INVALID_STRUCTURE, $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
$team = $dbForProject->getDocument('teams', $teamId);
|
$team = $dbForProject->getDocument('teams', $teamId);
|
||||||
|
|
||||||
|
|
@ -364,11 +376,13 @@ App::put('/v1/teams/:teamId/prefs')
|
||||||
throw new Exception(Exception::TEAM_NOT_FOUND);
|
throw new Exception(Exception::TEAM_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
$team = $dbForProject->updateDocument('teams', $team->getId(), $team->setAttribute('prefs', $prefs));
|
$team = $dbForProject->updateDocument('teams', $team->getId(), new Document([
|
||||||
|
'prefs' => $prefs->getArrayCopy()
|
||||||
|
]));
|
||||||
|
|
||||||
$queueForEvents->setParam('teamId', $team->getId());
|
$queueForEvents->setParam('teamId', $team->getId());
|
||||||
|
|
||||||
$response->dynamic(new Document($prefs), Response::MODEL_PREFERENCES);
|
$response->dynamic($prefs, Response::MODEL_PREFERENCES);
|
||||||
});
|
});
|
||||||
|
|
||||||
App::delete('/v1/teams/:teamId')
|
App::delete('/v1/teams/:teamId')
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue