2021-12-30 22:25:43 +13:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Appwrite\Utopia\Request\Filters;
|
|
|
|
|
|
|
|
use Appwrite\Utopia\Request\Filter;
|
|
|
|
|
2021-12-31 21:40:35 +13:00
|
|
|
class V12 extends Filter
|
2021-12-30 22:25:43 +13:00
|
|
|
{
|
|
|
|
// Convert 0.11 params format to 0.12 format
|
|
|
|
public function parse(array $content, string $model): array
|
|
|
|
{
|
|
|
|
$parsedResponse = [];
|
|
|
|
|
|
|
|
switch ($model) {
|
2022-01-01 01:00:07 +13:00
|
|
|
// No IDs -> Custom IDs
|
2021-12-30 22:25:43 +13:00
|
|
|
case "account.create":
|
2022-01-01 01:00:07 +13:00
|
|
|
case "account.createMagicURLSession":
|
|
|
|
case "users.create":
|
|
|
|
$parsedResponse = $this->addId('userId', $content);
|
|
|
|
break;
|
|
|
|
case "functions.create":
|
|
|
|
$parsedResponse = $this->addId('functionId', $content);
|
|
|
|
break;
|
|
|
|
case "teams.create":
|
|
|
|
$parsedResponse = $this->addId('teamId', $content);
|
|
|
|
break;
|
|
|
|
|
|
|
|
// Status integer -> boolean
|
|
|
|
case "users.updateStatus":
|
|
|
|
$parsedResponse = $this->convertStatus($content);
|
|
|
|
break;
|
|
|
|
|
|
|
|
// The rest (more complex) formats
|
|
|
|
case "database.createDocument":
|
|
|
|
$parsedResponse = $this->addId('documentId', $content);
|
|
|
|
break;
|
|
|
|
case "database.createCollection":
|
|
|
|
$parsedResponse = $this->addId('collectionId', $content);
|
2021-12-30 22:25:43 +13:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(empty($parsedResponse)) {
|
2021-12-31 21:40:35 +13:00
|
|
|
// No changes between current version and the one user requested
|
2021-12-30 22:25:43 +13:00
|
|
|
$parsedResponse = $content;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $parsedResponse;
|
|
|
|
}
|
|
|
|
|
2022-01-01 01:00:07 +13:00
|
|
|
protected function addUserId(string $key, array $content): array
|
|
|
|
{
|
|
|
|
$content[$key] = 'unique()';
|
|
|
|
return $content;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function convertStatus(array $content): array
|
2021-12-30 22:25:43 +13:00
|
|
|
{
|
2022-01-01 01:00:07 +13:00
|
|
|
$content['status'] = 'false'; // TODO: True or false. original is integer
|
2021-12-30 22:25:43 +13:00
|
|
|
return $content;
|
|
|
|
}
|
|
|
|
}
|