1
0
Fork 0
mirror of synced 2024-09-29 08:51:28 +13: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]); $parsedResponse[$listKey] = array_map(fn ($content) => $this->parseCreatedAtUpdatedAt($content), $parsedResponse[$listKey]);
break; break;
case Response::MODEL_DOCUMENT: case Response::MODEL_DOCUMENT:
$parsedResponse = $this->parseDocument($parsedResponse);
break;
case Response::MODEL_FILE: case Response::MODEL_FILE:
$parsedResponse = $this->parsePermissionsCreatedAtUpdatedAt($parsedResponse); $parsedResponse = $this->parsePermissionsCreatedAtUpdatedAt($parsedResponse);
break; break;
case Response::MODEL_DOCUMENT_LIST: case Response::MODEL_DOCUMENT_LIST:
$listKey = 'documents';
$parsedResponse[$listKey] = array_map(fn ($content) => $this->parseDocument($content), $parsedResponse[$listKey]);
break;
case Response::MODEL_FILE_LIST: case Response::MODEL_FILE_LIST:
$listKey = ''; $listKey = 'files';
switch ($model) {
case Response::MODEL_DOCUMENT_LIST:
$listKey = 'documents';
break;
case Response::MODEL_FILE_LIST:
$listKey = 'files';
break;
}
$parsedResponse[$listKey] = array_map(fn ($content) => $this->parsePermissionsCreatedAtUpdatedAt($content), $parsedResponse[$listKey]); $parsedResponse[$listKey] = array_map(fn ($content) => $this->parsePermissionsCreatedAtUpdatedAt($content), $parsedResponse[$listKey]);
break; break;
case Response::MODEL_EXECUTION: case Response::MODEL_EXECUTION:
@ -318,6 +315,19 @@ class V15 extends Filter
return $content; 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) private function parseExecution($content)
{ {
unset($content['stdout']); unset($content['stdout']);

View file

@ -502,9 +502,34 @@ class V15Test extends TestCase
$this->assertEquals($expected, $result); $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 createdAtUpdatedAtProvider
* @dataProvider permissionsProvider * @dataProvider permissionsProvider
* @dataProvider documentProvider
*/ */
public function testDocument(array $content, array $expected): void public function testDocument(array $content, array $expected): void
{ {