1
0
Fork 0
mirror of synced 2024-06-14 00:34:51 +12:00

Convert Document $collectionId in 0.15 response

Document $collection was renamed to $collectionId to match the naming
convention of referring to other resource IDs. This ensures backwards
compatibility.
This commit is contained in:
Steven Nguyen 2022-09-15 18:43:53 +00:00 committed by Steven
parent 01f77fa993
commit 2f08ec0926
2 changed files with 44 additions and 9 deletions

View file

@ -91,20 +91,17 @@ class V15 extends Filter
$parsedResponse[$listKey] = array_map(fn ($content) => $this->parseCreatedAtUpdatedAt($content), $parsedResponse[$listKey]);
break;
case Response::MODEL_DOCUMENT:
$parsedResponse = $this->parseDocument($parsedResponse);
break;
case Response::MODEL_FILE:
$parsedResponse = $this->parsePermissionsCreatedAtUpdatedAt($parsedResponse);
break;
case Response::MODEL_DOCUMENT_LIST:
$listKey = 'documents';
$parsedResponse[$listKey] = array_map(fn ($content) => $this->parseDocument($content), $parsedResponse[$listKey]);
break;
case Response::MODEL_FILE_LIST:
$listKey = '';
switch ($model) {
case Response::MODEL_DOCUMENT_LIST:
$listKey = 'documents';
break;
case Response::MODEL_FILE_LIST:
$listKey = 'files';
break;
}
$listKey = 'files';
$parsedResponse[$listKey] = array_map(fn ($content) => $this->parsePermissionsCreatedAtUpdatedAt($content), $parsedResponse[$listKey]);
break;
case Response::MODEL_EXECUTION:
@ -318,6 +315,19 @@ class V15 extends Filter
return $content;
}
protected function parseDocument(array $content)
{
if (isset($content['$collectionId'])) {
$content['$collection'] = $content['$collectionId'];
unset($content['$collectionId']);
}
unset($content['$databaseId']);
$content = $this->parsePermissionsCreatedAtUpdatedAt($content);
return $content;
}
private function parseExecution($content)
{
unset($content['stdout']);

View file

@ -502,9 +502,34 @@ class V15Test extends TestCase
$this->assertEquals($expected, $result);
}
public function documentProvider(): array
{
return [
'basic document' => [
[
'$id' => '5e5ea5c16897e',
'$collectionId' => '5e5ea5c15117e',
'$databaseId' => '5e5ea5c15117e',
'$createdAt' => '2020-06-24T06:47:30.000Z',
'$updatedAt' => '2020-06-24T06:47:30.000Z',
'$permissions' => [Permission::read(Role::any())]
],
[
'$id' => '5e5ea5c16897e',
'$collection' => '5e5ea5c15117e',
'$createdAt' => 1592981250,
'$updatedAt' => 1592981250,
'$read' => ['role:all'],
'$write' => [],
],
],
];
}
/**
* @dataProvider createdAtUpdatedAtProvider
* @dataProvider permissionsProvider
* @dataProvider documentProvider
*/
public function testDocument(array $content, array $expected): void
{