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']);
break;
case Response::MODEL_BUCKET:
$parsedResponse = $this->handleBucketAttributes($content);
break;
case Response::MODEL_COLLECTION:
$parsedResponse = $this->handleCollectionAttributes($content);
break;
case Response::MODEL_DEPLOYMENT:
case Response::MODEL_DOCUMENT:
case Response::MODEL_EXECUTION:
$parsedResponse = $this->handleExecutionAttributes($content);
break;
case Response::MODEL_PLATFORM:
case Response::MODEL_PROJECT:
case Response::MODEL_TEAM:
case Response::MODEL_FILE:
case Response::MODEL_WEBHOOK:
case Response::MODEL_DOMAIN:
case Response::MODEL_DATABASE:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt']);
break;
case Response::MODEL_FUNCTION:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt', 'scheduleNext', 'schedulePrevious']);
$parsedResponse = $this->handleFunctionAttribtues($content);
break;
case Response::MODEL_KEY:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', '$updatedAt', 'expire']);
@ -55,6 +62,8 @@ class V15 extends Filter
case Response::MODEL_TOKEN:
$parsedResponse = $this->handleDatetimeAttributes($content, ['$createdAt', 'expire']);
break;
case Response::MODEL_USAGE_FUNCTIONS:
$parsedResponse = $this->handleModelUsageFuncAttributes($content);
}
// Downgrade Permissions for all models
@ -63,6 +72,20 @@ class V15 extends Filter
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
{
foreach ($attributes as $attribute) {
@ -76,6 +99,10 @@ class V15 extends Filter
protected function handleUser(array $content): array
{
unset($content['password']);
unset($content['hash']);
unset($content['hashOptions']);
$content = $this->handleDatetimeAttributes($content, ['registration', 'passwordUpdate', '$createdAt', '$updatedAt']);
return $content;
}
@ -149,4 +176,61 @@ class V15 extends Filter
unset($model['$permissions']);
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']);
}
}