Compare commits

...
3 changed files with 45 additions and 0 deletions
@@ -81,6 +81,13 @@ class V19 extends Filter
protected function parseProject(array $content)
{
// Ensure $createdAt is present for older clients expecting it
$content['$createdAt'] = $content['$createdAt'] ?? ($content['createdAt'] ?? '');
// Provide resource identification fields used by various SDKs
$content['resourceType'] = $content['resourceType'] ?? 'projects';
$content['resourceId'] = $content['resourceId'] ?? ($content['$id'] ?? ($content['id'] ?? ''));
unset($content['devKeys']);
return $content;
}
@@ -30,6 +30,18 @@ class Project extends Model
'default' => '',
'example' => self::TYPE_DATETIME_EXAMPLE,
])
->addRule('resourceType', [
'type' => self::TYPE_STRING,
'description' => 'Resource type for SDK compatibility.',
'default' => '',
'example' => 'projects',
])
->addRule('resourceId', [
'type' => self::TYPE_STRING,
'description' => 'Resource id for SDK compatibility.',
'default' => '',
'example' => '5e5ea5c16897e',
])
->addRule('$updatedAt', [
'type' => self::TYPE_DATETIME,
'description' => 'Project update date in ISO 8601 format.',
@@ -405,6 +417,11 @@ class Project extends Model
$document->setAttribute('oAuthProviders', $projectProviders);
// Ensure response contains resource identification fields and createdAt
$document->setAttribute('$createdAt', $document->getAttribute('$createdAt', $document->getAttribute('createdAt', '')));
$document->setAttribute('resourceType', $document->getAttribute('resourceType', 'projects'));
$document->setAttribute('resourceId', $document->getId());
return $document;
}
}
@@ -237,6 +237,9 @@ class V19Test extends TestCase
'name' => 'test-project',
],
[
'$createdAt' => '',
'resourceType' => 'projects',
'resourceId' => '',
'name' => 'test-project',
]
],
@@ -245,9 +248,27 @@ class V19Test extends TestCase
'name' => 'test-project',
],
[
'$createdAt' => '',
'resourceType' => 'projects',
'resourceId' => '',
'name' => 'test-project',
]
],
'include createdAt and id' => [
[
'$createdAt' => '2020-01-01T00:00:00+00:00',
'$id' => 'proj123',
'devKeys' => ['k1'],
'name' => 'test-project',
],
[
'$createdAt' => '2020-01-01T00:00:00+00:00',
'resourceType' => 'projects',
'resourceId' => 'proj123',
'name' => 'test-project',
'$id' => 'proj123',
]
],
];
}