Update V15.php

This commit is contained in:
Bradley Schofield 2022-09-07 11:26:22 +01:00
parent a04a968def
commit 80e60d9d95

View file

@ -25,20 +25,27 @@ class V15 extends Filter
$parsedResponse = $this->handleDatetimeAttributes($content, ['startTime', 'endTime']); $parsedResponse = $this->handleDatetimeAttributes($content, ['startTime', 'endTime']);
break; break;
case Response::MODEL_BUCKET: case Response::MODEL_BUCKET:
$parsedResponse = $this->handleBucketAttributes($content);
break;
case Response::MODEL_COLLECTION: case Response::MODEL_COLLECTION:
$parsedResponse = $this->handleCollectionAttributes($content);
break;
case Response::MODEL_DEPLOYMENT: case Response::MODEL_DEPLOYMENT:
case Response::MODEL_DOCUMENT: case Response::MODEL_DOCUMENT:
case Response::MODEL_EXECUTION: case Response::MODEL_EXECUTION:
$parsedResponse = $this->handleExecutionAttributes($content);
break;
case Response::MODEL_PLATFORM: case Response::MODEL_PLATFORM:
case Response::MODEL_PROJECT: case Response::MODEL_PROJECT:
case Response::MODEL_TEAM: case Response::MODEL_TEAM:
case Response::MODEL_FILE: case Response::MODEL_FILE:
case Response::MODEL_WEBHOOK: case Response::MODEL_WEBHOOK:
case Response::MODEL_DOMAIN: case Response::MODEL_DOMAIN:
case Response::MODEL_DATABASE:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt']); $parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt']);
break; break;
case Response::MODEL_FUNCTION: case Response::MODEL_FUNCTION:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt', 'scheduleNext', 'schedulePrevious']); $parsedResponse = $this->handleFunctionAttribtues($content);
break; break;
case Response::MODEL_KEY: case Response::MODEL_KEY:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt', 'expire']); $parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt', 'expire']);
@ -55,6 +62,8 @@ class V15 extends Filter
case Response::MODEL_TOKEN: case Response::MODEL_TOKEN:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', 'expire']); $parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', 'expire']);
break; break;
case Response::MODEL_USAGE_FUNCTIONS:
$parsedResponse = $this->handleModelUsageFuncAttributes($content);
} }
// Downgrade Permissions for all models // Downgrade Permissions for all models
@ -63,6 +72,20 @@ class V15 extends Filter
return $parsedResponse; return $parsedResponse;
} }
protected function handleBucketAttributes(array $content)
{
if ($content['fileSecurity']) {
$content['permssion'] = 'file';
} else {
$content['permssion'] = 'bucket';
}
unset($content['fileSecurity']);
unset($content['compression']);
$content = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt']);
}
protected function handleDatetimeAttributes(array $content, array $attributes): array protected function handleDatetimeAttributes(array $content, array $attributes): array
{ {
foreach ($attributes as $attribute) { foreach ($attributes as $attribute) {
@ -76,6 +99,10 @@ class V15 extends Filter
protected function handleUser(array $content): array protected function handleUser(array $content): array
{ {
unset($content['password']); unset($content['password']);
unset($content['hash']);
unset($content['hashOptions']);
$content = $this->handleDatetimeAttributes($content, ['registration', 'passwordUpdate', '$createdAt', '$updatedAt']);
return $content; return $content;
} }
@ -149,4 +176,61 @@ class V15 extends Filter
unset($model['$permissions']); unset($model['$permissions']);
return array_merge($model, $result); return array_merge($model, $result);
} }
protected function handleCollectionAttributes(array $content)
{
$content['permission'] = $content['documentSecurity'];
unset($content['documentSecurity']);
$content = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt']);
return $content;
}
private function handleExecutionAttributes($content)
{
unset($content['stdout']);
$content = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt']);
return $content;
}
private function handleFunctionAttribtues($content)
{
$content['execute'] = array_map($this->downgradePermissionSelector, $content['execute']);
$content = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt', 'scheduleNext', 'schedulePrevious']);
return $content;
}
private function handleModelUsageFuncAttributes($content)
{
$content['functiosnExecutions'] = $content['executionsTotal'];
$content['functionsFailures'] = $content['executionsFailure'];
$content['functionsCompute'] = $content['executionsTime'];
unset($content['functionExecutions']);
unset($content['functionFailure']);
unset($content['executionsTime']);
unset($content['buildsTotal']);
unset($content['executionsSuccess']);
unset($content['buildsFailure']);
unset($content['buildsSuccess']);
unset($content['buildsTime']);
return $content;
}
private function handleUsageProjectAttributes($content)
{
$content['functions'] = $content['executions'];
unset($content['executions']);
return $content;
}
private function handleUsageStorageAttribtues($content)
{
$content['filesStorage'] = $content['storage'];
$content['tagsStorage'] = [];
unset($content['storage']);
}
} }