Legacy DB support

This commit is contained in:
Jake Barnby
2025-09-11 17:54:55 +12:00
parent f9b92ddead
commit 498484ca4e
119 changed files with 831 additions and 762 deletions
+1 -1
View File
@@ -52,7 +52,7 @@
"utopia-php/cache": "0.13.*",
"utopia-php/cli": "0.15.*",
"utopia-php/config": "0.2.*",
"utopia-php/database": "1.*",
"utopia-php/database": "2.*",
"utopia-php/detector": "0.1.*",
"utopia-php/domains": "0.8.*",
"utopia-php/dns": "0.3.*",
Generated
+28 -28
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "7553e976312b0423cc31544abb91caec",
"content-hash": "773efb29b9b584b1249790e0016c823a",
"packages": [
{
"name": "adhocore/jwt",
@@ -3296,16 +3296,16 @@
},
{
"name": "utopia-php/abuse",
"version": "1.0.0",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/abuse.git",
"reference": "c5e2232033b507a07f72180dc56d37e1872ee7be"
"reference": "cd591568791556d246d901d6aaf9935ab02c3f9a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/abuse/zipball/c5e2232033b507a07f72180dc56d37e1872ee7be",
"reference": "c5e2232033b507a07f72180dc56d37e1872ee7be",
"url": "https://api.github.com/repos/utopia-php/abuse/zipball/cd591568791556d246d901d6aaf9935ab02c3f9a",
"reference": "cd591568791556d246d901d6aaf9935ab02c3f9a",
"shasum": ""
},
"require": {
@@ -3313,7 +3313,7 @@
"ext-pdo": "*",
"ext-redis": "*",
"php": ">=8.0",
"utopia-php/database": "1.*"
"utopia-php/database": "2.*"
},
"require-dev": {
"laravel/pint": "1.*",
@@ -3341,9 +3341,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/abuse/issues",
"source": "https://github.com/utopia-php/abuse/tree/1.0.0"
"source": "https://github.com/utopia-php/abuse/tree/1.0.1"
},
"time": "2025-08-13T09:12:54+00:00"
"time": "2025-09-04T12:46:54+00:00"
},
{
"name": "utopia-php/analytics",
@@ -3393,21 +3393,21 @@
},
{
"name": "utopia-php/audit",
"version": "1.0.0",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/audit.git",
"reference": "c0ed75f4d068f1f6c2e7149a909490d4214e72bb"
"reference": "5ef26d6a2ab2db7bb86288a1a6ef970307b46f22"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/audit/zipball/c0ed75f4d068f1f6c2e7149a909490d4214e72bb",
"reference": "c0ed75f4d068f1f6c2e7149a909490d4214e72bb",
"url": "https://api.github.com/repos/utopia-php/audit/zipball/5ef26d6a2ab2db7bb86288a1a6ef970307b46f22",
"reference": "5ef26d6a2ab2db7bb86288a1a6ef970307b46f22",
"shasum": ""
},
"require": {
"php": ">=8.0",
"utopia-php/database": "1.*"
"utopia-php/database": "2.*"
},
"require-dev": {
"laravel/pint": "1.*",
@@ -3434,9 +3434,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/audit/issues",
"source": "https://github.com/utopia-php/audit/tree/1.0.0"
"source": "https://github.com/utopia-php/audit/tree/1.0.1"
},
"time": "2025-08-13T09:09:00+00:00"
"time": "2025-09-04T12:46:43+00:00"
},
{
"name": "utopia-php/cache",
@@ -3638,16 +3638,16 @@
},
{
"name": "utopia-php/database",
"version": "1.4.5",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/database.git",
"reference": "1bac5c66567cd0718b4c133c8550b3c6076ff908"
"reference": "e4a03ba543abc4e436ec1b450750a14bd36011d5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/database/zipball/1bac5c66567cd0718b4c133c8550b3c6076ff908",
"reference": "1bac5c66567cd0718b4c133c8550b3c6076ff908",
"url": "https://api.github.com/repos/utopia-php/database/zipball/e4a03ba543abc4e436ec1b450750a14bd36011d5",
"reference": "e4a03ba543abc4e436ec1b450750a14bd36011d5",
"shasum": ""
},
"require": {
@@ -3688,9 +3688,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/database/issues",
"source": "https://github.com/utopia-php/database/tree/1.4.5"
"source": "https://github.com/utopia-php/database/tree/2.0.0"
},
"time": "2025-09-11T03:10:29+00:00"
"time": "2025-09-04T12:36:53+00:00"
},
{
"name": "utopia-php/detector",
@@ -4190,16 +4190,16 @@
},
{
"name": "utopia-php/migration",
"version": "1.1.1",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/migration.git",
"reference": "c42935a6a4ee3701c68d24244e82ecb39e945ec4"
"reference": "6fb6f8f032cd34c3c65728a55d494adeac2ff038"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/migration/zipball/c42935a6a4ee3701c68d24244e82ecb39e945ec4",
"reference": "c42935a6a4ee3701c68d24244e82ecb39e945ec4",
"url": "https://api.github.com/repos/utopia-php/migration/zipball/6fb6f8f032cd34c3c65728a55d494adeac2ff038",
"reference": "6fb6f8f032cd34c3c65728a55d494adeac2ff038",
"shasum": ""
},
"require": {
@@ -4207,7 +4207,7 @@
"ext-curl": "*",
"ext-openssl": "*",
"php": ">=8.1",
"utopia-php/database": "1.*",
"utopia-php/database": "2.*",
"utopia-php/dsn": "0.2.*",
"utopia-php/framework": "0.33.*",
"utopia-php/storage": "0.18.*"
@@ -4240,9 +4240,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/migration/issues",
"source": "https://github.com/utopia-php/migration/tree/1.1.1"
"source": "https://github.com/utopia-php/migration/tree/1.1.0"
},
"time": "2025-09-10T06:17:20+00:00"
"time": "2025-09-10T05:45:30+00:00"
},
{
"name": "utopia-php/orchestration",
@@ -53,7 +53,7 @@ abstract class Action extends UtopiaAction
/**
* Get the SDK group name for the current action.
*/
protected function getSdkGroup(): string
protected function getSDKGroup(): string
{
return $this->isCollectionsAPI() ? 'collections' : 'tables';
}
@@ -61,7 +61,7 @@ abstract class Action extends UtopiaAction
/**
* Get the SDK namespace for the current action.
*/
protected function getSdkNamespace(): string
protected function getSDKNamespace(): string
{
return $this->isCollectionsAPI() ? 'databases' : 'tablesDB';
}
@@ -66,7 +66,7 @@ abstract class Action extends UtopiaAction
*
* Can be used for XList operations as well!
*/
protected function getSdkGroup(): string
protected function getSDKGroup(): string
{
return $this->isCollectionsAPI() ? 'attributes' : 'columns';
}
@@ -74,7 +74,7 @@ abstract class Action extends UtopiaAction
/**
* Get the SDK namespace for the current action.
*/
protected function getSdkNamespace(): string
protected function getSDKNamespace(): string
{
return $this->isCollectionsAPI() ? 'databases' : 'tablesDB';
}
@@ -42,8 +42,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-boolean-attribute.md',
auth: [AuthType::KEY],
@@ -42,8 +42,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-boolean-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-datetime-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-datetime-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Delete extends Action
->label('audits.event', 'attribute.delete')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/delete-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-email-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-email-attribute.md',
auth: [AuthType::KEY],
@@ -45,8 +45,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-enum-attribute.md',
auth: [AuthType::KEY],
@@ -44,8 +44,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-enum-attribute.md',
auth: [AuthType::KEY],
@@ -45,8 +45,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-float-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-float-attribute.md',
auth: [AuthType::KEY],
@@ -47,8 +47,8 @@ class Get extends Action
->label('scope', 'collections.read')
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/get-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-ip-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-ip-attribute.md',
auth: [AuthType::KEY],
@@ -45,8 +45,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-integer-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-integer-attribute.md',
auth: [AuthType::KEY],
@@ -44,8 +44,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-line-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-line-attribute.md',
auth: [AuthType::KEY],
@@ -44,8 +44,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-point-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-point-attribute.md',
auth: [AuthType::KEY],
@@ -44,8 +44,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-polygon-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-polygon-attribute.md',
auth: [AuthType::KEY],
@@ -45,8 +45,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-relationship-attribute.md',
auth: [AuthType::KEY],
@@ -41,8 +41,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-relationship-attribute.md',
auth: [AuthType::KEY],
@@ -47,8 +47,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-string-attribute.md',
auth: [AuthType::KEY],
@@ -95,7 +95,7 @@ class Create extends Action
array $plan
): void {
if (!App::isDevelopment() && $encrypt && !empty($plan) && !($plan['databasesAllowEncrypt'] ?? false)) {
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Encrypted string ' . $this->getSdkGroup() . ' are not available on your plan. Please upgrade to create encrypted string ' . $this->getSdkGroup() . '.');
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Encrypted string ' . $this->getSDKGroup() . ' are not available on your plan. Please upgrade to create encrypted string ' . $this->getSDKGroup() . '.');
}
if ($encrypt && $size < APP_DATABASE_ENCRYPT_SIZE_MIN) {
@@ -45,8 +45,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-string-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Create extends Action
->label('audits.event', 'attribute.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-url-attribute.md',
auth: [AuthType::KEY],
@@ -43,8 +43,8 @@ class Update extends Action
->label('audits.event', 'attribute.update')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-url-attribute.md',
auth: [AuthType::KEY],
@@ -41,8 +41,8 @@ class XList extends Action
->label('scope', 'collections.read')
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/list-attributes.md',
auth: [AuthType::KEY],
@@ -141,7 +141,7 @@ class XList extends Action
$response->dynamic(new Document([
'total' => $total,
$this->getSdkGroup() => $attributes,
$this->getSDKGroup() => $attributes,
]), $this->getResponseModel());
}
}
@@ -52,7 +52,7 @@ class Create extends Action
->label('audits.resource', 'database/{request.databaseId}/collection/{response.$id}')
->label('sdk', new Method(
namespace: 'databases',
group: $this->getSdkGroup(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-collection.md',
auth: [AuthType::KEY],
@@ -42,7 +42,7 @@ class Delete extends Action
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: 'databases',
group: $this->getSdkGroup(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/delete-collection.md',
auth: [AuthType::KEY],
@@ -76,7 +76,7 @@ abstract class Action extends AppwriteAction
*
* Can be used for XList operations as well!
*/
protected function getSdkGroup(): string
protected function getSDKGroup(): string
{
return $this->isCollectionsAPI() ? 'documents' : 'rows';
}
@@ -84,7 +84,7 @@ abstract class Action extends AppwriteAction
/**
* Get the SDK namespace for the current action.
*/
protected function getSdkNamespace(): string
protected function getSDKNamespace(): string
{
return $this->isCollectionsAPI() ? 'databases' : 'tablesDB';
}
@@ -54,8 +54,8 @@ class Decrement extends Action
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT * 2)
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/decrement-document-attribute.md',
auth: [AuthType::SESSION, AuthType::JWT, AuthType::ADMIN, AuthType::KEY],
@@ -166,9 +166,9 @@ class Decrement extends Action
} catch (NotFoundException) {
throw new Exception($this->getStructureNotFoundException());
} catch (LimitException) {
throw new Exception($this->getLimitException(), $this->getSdkNamespace() . ' "' . $attribute . '" has reached the minimum value of ' . $min);
throw new Exception($this->getLimitException(), $this->getSDKNamespace() . ' "' . $attribute . '" has reached the minimum value of ' . $min);
} catch (TypeException) {
throw new Exception(Exception::ATTRIBUTE_TYPE_INVALID, $this->getSdkNamespace() . ' "' . $attribute . '" is not a number');
throw new Exception(Exception::ATTRIBUTE_TYPE_INVALID, $this->getSDKNamespace() . ' "' . $attribute . '" is not a number');
} catch (InvalidArgumentException $e) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, $e->getMessage());
}
@@ -54,8 +54,8 @@ class Increment extends Action
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT * 2)
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/increment-document-attribute.md',
auth: [AuthType::SESSION, AuthType::JWT, AuthType::ADMIN, AuthType::KEY],
@@ -166,9 +166,9 @@ class Increment extends Action
} catch (NotFoundException) {
throw new Exception($this->getStructureNotFoundException());
} catch (LimitException) {
throw new Exception($this->getLimitException(), $this->getSdkNamespace() . ' "' . $attribute . '" has reached the maximum value of ' . $max);
throw new Exception($this->getLimitException(), $this->getSDKNamespace() . ' "' . $attribute . '" has reached the maximum value of ' . $max);
} catch (TypeException) {
throw new Exception(Exception::ATTRIBUTE_TYPE_INVALID, $this->getSdkNamespace() . ' "' . $attribute . '" is not a number');
throw new Exception(Exception::ATTRIBUTE_TYPE_INVALID, $this->getSDKNamespace() . ' "' . $attribute . '" is not a number');
} catch (InvalidArgumentException $e) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, $e->getMessage());
}
@@ -51,8 +51,8 @@ class Delete extends Action
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT)
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/delete-documents.md',
auth: [AuthType::ADMIN, AuthType::KEY],
@@ -101,7 +101,7 @@ class Delete extends Action
);
if ($hasRelationships) {
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk delete is not supported for ' . $this->getSdkNamespace() . ' with relationship attributes');
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk delete is not supported for ' . $this->getSDKNamespace() . ' with relationship attributes');
}
$originalQueries = $queries;
@@ -152,7 +152,7 @@ class Delete extends Action
// Return successful response without actually deleting documents
$response->dynamic(new Document([
$this->getSdkGroup() => [],
$this->getSDKGroup() => [],
'total' => 0, // Can't predict how many would be deleted
]), $this->getResponseModel());
return;
@@ -187,7 +187,7 @@ class Delete extends Action
$response->dynamic(new Document([
'total' => $modified,
$this->getSdkGroup() => $documents,
$this->getSDKGroup() => $documents,
]), $this->getResponseModel());
$this->triggerBulk(
@@ -54,8 +54,8 @@ class Update extends Action
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT * 2)
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-documents.md',
auth: [AuthType::ADMIN, AuthType::KEY],
@@ -113,7 +113,7 @@ class Update extends Action
);
if ($hasRelationships) {
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk update is not supported for ' . $this->getSdkNamespace() . ' with relationship attributes');
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk update is not supported for ' . $this->getSDKNamespace() . ' with relationship attributes');
}
$originalQueries = $queries;
@@ -174,7 +174,7 @@ class Update extends Action
// Return successful response without actually updating documents
$response->dynamic(new Document([
$this->getSdkGroup() => [],
$this->getSDKGroup() => [],
'total' => 0, // Can't predict how many would be updated
]), $this->getResponseModel());
return;
@@ -214,7 +214,7 @@ class Update extends Action
$response->dynamic(new Document([
'total' => $modified,
$this->getSdkGroup() => $documents
$this->getSDKGroup() => $documents
]), $this->getResponseModel());
$this->triggerBulk(
@@ -52,8 +52,8 @@ class Upsert extends Action
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', [
new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/upsert-documents.md',
auth: [AuthType::ADMIN, AuthType::KEY],
@@ -103,7 +103,7 @@ class Upsert extends Action
);
if ($hasRelationships) {
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk upsert is not supported for ' . $this->getSdkNamespace() . ' with relationship attributes');
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk upsert is not supported for ' . $this->getSDKNamespace() . ' with relationship attributes');
}
foreach ($documents as $key => $document) {
@@ -150,7 +150,7 @@ class Upsert extends Action
// Return successful response without actually upserting documents
$response->dynamic(new Document([
$this->getSdkGroup() => [],
$this->getSDKGroup() => [],
'total' => \count($documents),
]), $this->getResponseModel());
@@ -192,7 +192,7 @@ class Upsert extends Action
$response->dynamic(new Document([
'total' => $modified,
$this->getSdkGroup() => $upserted
$this->getSDKGroup() => $upserted
]), $this->getResponseModel());
$this->triggerBulk(
@@ -63,8 +63,8 @@ class Create extends Action
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', [
new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
desc: 'Create document',
description: '/docs/references/databases/create-document.md',
@@ -90,8 +90,8 @@ class Create extends Action
),
),
new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: $this->getBulkActionName(self::getName()),
desc: 'Create documents',
description: '/docs/references/databases/create-documents.md',
@@ -148,7 +148,7 @@ class Create extends Action
}
if (!empty($data) && !empty($documents)) {
// Both single and bulk documents provided
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'You can only send one of the following parameters: data, ' . $this->getSdkGroup());
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'You can only send one of the following parameters: data, ' . $this->getSDKGroup());
}
if (!empty($data) && empty($documentId)) {
// Single document provided without document ID
@@ -161,12 +161,12 @@ class Create extends Action
$documentId = $this->isCollectionsAPI() ? 'documentId' : 'rowId';
throw new Exception(
Exception::GENERAL_BAD_REQUEST,
"Param \"$documentId\" is not allowed when creating multiple " . $this->getSdkGroup() . ', set "$id" on each instead.'
"Param \"$documentId\" is not allowed when creating multiple " . $this->getSDKGroup() . ', set "$id" on each instead.'
);
}
if (!empty($documents) && !empty($permissions)) {
// Bulk documents provided with permissions
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Param "permissions" is disallowed when creating multiple ' . $this->getSdkGroup() . ', set "$permissions" on each instead');
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Param "permissions" is disallowed when creating multiple ' . $this->getSDKGroup() . ', set "$permissions" on each instead');
}
$isBulk = true;
@@ -200,7 +200,7 @@ class Create extends Action
);
if ($isBulk && $hasRelationships) {
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk create is not supported for ' . $this->getSdkNamespace() .' with relationship ' . $this->getStructureContext());
throw new Exception(Exception::GENERAL_BAD_REQUEST, 'Bulk create is not supported for ' . $this->getSDKNamespace() .' with relationship ' . $this->getStructureContext());
}
$setPermissions = function (Document $document, ?array $permissions) use ($user, $isAPIKey, $isPrivilegedUser, $isBulk) {
@@ -407,7 +407,7 @@ class Create extends Action
// Return successful response without actually creating documents
if ($isBulk) {
$response->dynamic(new Document([
$this->getSdkGroup() => [],
$this->getSDKGroup() => [],
'total' => \count($documents),
]), $this->getBulkResponseModel());
} else {
@@ -468,7 +468,7 @@ class Create extends Action
if ($isBulk) {
$response->dynamic(new Document([
'total' => count($documents),
$this->getSdkGroup() => $documents
$this->getSDKGroup() => $documents
]), $this->getBulkResponseModel());
$this->triggerBulk(
@@ -54,8 +54,8 @@ class Delete extends Action
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT)
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/delete-document.md',
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
@@ -43,8 +43,8 @@ class Get extends Action
->label('scope', 'documents.read')
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/get-document.md',
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
@@ -48,7 +48,7 @@ class XList extends Action
->label('scope', 'documents.read')
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
namespace: $this->getSDKNamespace(),
group: 'logs',
name: self::getName(),
description: '/docs/references/databases/get-document-logs.md',
@@ -56,8 +56,8 @@ class Update extends Action
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT * 2)
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-document.md',
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
@@ -58,8 +58,8 @@ class Upsert extends Action
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
->label('sdk', [
new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/upsert-document.md',
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
@@ -46,8 +46,8 @@ class XList extends Action
->label('scope', 'documents.read')
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/list-documents.md',
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
@@ -206,7 +206,7 @@ class XList extends Action
$response->dynamic(new Document([
'total' => $total,
// rows or documents
$this->getSdkGroup() => $documents,
$this->getSDKGroup() => $documents,
]), $this->getResponseModel());
}
}
@@ -37,7 +37,7 @@ class Get extends Action
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: 'databases',
group: $this->getSdkGroup(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/get-collection.md',
auth: [AuthType::KEY],
@@ -52,7 +52,7 @@ abstract class Action extends UtopiaAction
/**
* Get the SDK group name for the current action.
*/
final protected function getSdkGroup(): string
final protected function getSDKGroup(): string
{
return 'indexes';
}
@@ -60,7 +60,7 @@ abstract class Action extends UtopiaAction
/**
* Get the SDK namespace for the current action.
*/
final protected function getSdkNamespace(): string
final protected function getSDKNamespace(): string
{
return $this->isCollectionsAPI() ? 'databases' : 'tablesDB';
}
@@ -51,8 +51,8 @@ class Create extends Action
->label('audits.event', 'index.create')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/create-index.md',
auth: [AuthType::KEY],
@@ -46,8 +46,8 @@ class Delete extends Action
->label('audits.event', 'index.delete')
->label('audits.resource', 'database/{request.databaseId}/collection/{request.collectionId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/delete-index.md',
auth: [AuthType::KEY],
@@ -37,8 +37,8 @@ class Get extends Action
->label('scope', 'collections.read')
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/get-index.md',
auth: [AuthType::KEY],
@@ -42,8 +42,8 @@ class XList extends Action
->label('scope', 'collections.read')
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/list-indexes.md',
auth: [AuthType::KEY],
@@ -49,7 +49,7 @@ class XList extends Action
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: 'databases',
group: $this->getSdkGroup(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/get-collection-logs.md',
auth: [AuthType::ADMIN],
@@ -45,7 +45,7 @@ class Update extends Action
->label('audits.resource', 'database/{request.databaseId}/collections/{request.collectionId}')
->label('sdk', new Method(
namespace: 'databases',
group: $this->getSdkGroup(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/update-collection.md',
auth: [AuthType::KEY],
@@ -44,7 +44,7 @@ class XList extends Action
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: 'databases',
group: $this->getSdkGroup(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/databases/list-collections.md',
auth: [AuthType::KEY],
@@ -121,7 +121,7 @@ class XList extends Action
$response->dynamic(new Document([
'total' => $total,
$this->getSdkGroup() => $collections,
$this->getSDKGroup() => $collections,
]), $this->getResponseModel());
}
}
@@ -0,0 +1,67 @@
<?php
namespace Appwrite\Platform\Modules\Databases\Http\Databases\Transactions;
use Appwrite\Extend\Exception;
use Utopia\Platform\Action as UtopiaAction;
abstract class Action extends UtopiaAction
{
/**
* The current API context (either 'table' or 'collection').
*/
private ?string $context = COLLECTIONS;
public function setHttpPath(string $path): UtopiaAction
{
if (\str_contains($path, '/tablesdb')) {
$this->context = TABLES;
}
return parent::setHttpPath($path);
}
/**
* Get the current API context.
*/
protected function getContext(): string
{
return $this->context;
}
/**
* Determine if the current action is for the Collections API.
*/
protected function isCollectionsAPI(): bool
{
return $this->getContext() === COLLECTIONS;
}
/**
* Get the key used in event parameters (e.g., 'collectionId' or 'tableId').
*/
protected function getGroupId(): string
{
return $this->getContext() . 'Id';
}
/**
* Get the resource type for the current action (either 'document' or 'row').
*/
protected function getResource(): string
{
return $this->isCollectionsAPI() ? 'document' : 'row';
}
/**
* Get the resource ID key for the current action.
*/
protected function getResourceId(): string
{
return $this->getResource() . 'Id';
}
protected function getAttributeKey(): string
{
return $this->isCollectionsAPI() ? 'attribute' : 'column';
}
}
@@ -2,7 +2,6 @@
namespace Appwrite\Platform\Modules\Databases\Http\Databases\Transactions;
use Appwrite\Platform\Action;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\ContentType;
use Appwrite\SDK\Method;
@@ -19,7 +18,7 @@ class Create extends Action
{
public static function getName(): string
{
return 'createTransaction';
return 'createDatabasesTransaction';
}
protected function getResponseModel(): string
@@ -3,7 +3,6 @@
namespace Appwrite\Platform\Modules\Databases\Http\Databases\Transactions;
use Appwrite\Extend\Exception;
use Appwrite\Platform\Action;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\ContentType;
use Appwrite\SDK\Method;
@@ -18,7 +17,7 @@ class Delete extends Action
{
public static function getName(): string
{
return 'deleteTransaction';
return 'deleteDatabasesTransaction';
}
protected function getResponseModel(): string
@@ -3,7 +3,6 @@
namespace Appwrite\Platform\Modules\Databases\Http\Databases\Transactions;
use Appwrite\Extend\Exception;
use Appwrite\Platform\Action;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\ContentType;
use Appwrite\SDK\Method;
@@ -17,7 +16,7 @@ class Get extends Action
{
public static function getName(): string
{
return 'getTransaction';
return 'getDatabasesTransaction';
}
protected function getResponseModel(): string
@@ -3,7 +3,7 @@
namespace Appwrite\Platform\Modules\Databases\Http\Databases\Transactions\Operations;
use Appwrite\Extend\Exception;
use Appwrite\Platform\Action;
use Appwrite\Platform\Modules\Databases\Http\Databases\Transactions\Action;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\ContentType;
use Appwrite\SDK\Method;
@@ -21,7 +21,7 @@ class Create extends Action
{
public static function getName(): string
{
return 'createOperations';
return 'createDatabasesTransactionOperations';
}
protected function getResponseModel(): string
@@ -84,7 +84,9 @@ class Create extends Action
throw new Exception(Exception::DATABASE_NOT_FOUND);
}
$collection = $collections[$operation['collectionId']] ??= $dbForProject->getDocument('database_' . $database->getSequence(), $operation['collectionId']);
$collection = $collections[$operation[$this->getGroupId()]] ??=
$dbForProject->getDocument('database_' . $database->getSequence(), $operation[$this->getGroupId()]);
if ($collection->isEmpty()) {
throw new Exception(Exception::COLLECTION_NOT_FOUND);
}
@@ -94,7 +96,7 @@ class Create extends Action
'databaseInternalId' => $database->getSequence(),
'collectionInternalId' => $collection->getSequence(),
'transactionInternalId' => $transaction->getSequence(),
'documentId' => $operation['documentId'] ?? null,
'documentId' => $operation[$this->getResourceId()] ?? null,
'action' => $operation['action'],
'data' => $operation['data'] ?? [],
]);
@@ -4,7 +4,6 @@ namespace Appwrite\Platform\Modules\Databases\Http\Databases\Transactions;
use Appwrite\Event\Delete;
use Appwrite\Extend\Exception;
use Appwrite\Platform\Action;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\ContentType;
use Appwrite\SDK\Method;
@@ -27,7 +26,7 @@ class Update extends Action
{
public static function getName(): string
{
return 'updateTransaction';
return 'updateDatabasesTransaction';
}
protected function getResponseModel(): string
@@ -73,11 +72,10 @@ class Update extends Action
* @param bool $rollback
* @param UtopiaResponse $response
* @param Database $dbForProject
* @param \Appwrite\Platform\Modules\Databases\Http\Databases\Transactions\Delete $queueForDeletes
* @param Delete $queueForDeletes
* @return void
* @throws ConflictException
* @throws Exception
* @throws \DateMalformedStringException
* @throws \Throwable
* @throws \Utopia\Database\Exception
* @throws Authorization
@@ -357,7 +355,7 @@ class Update extends Action
$state[$collectionId][$documentId] = $dbForProject->increaseDocumentAttribute(
collection: $collectionId,
id: $documentId,
attribute: $data['attribute'],
attribute: $data[$this->getAttributeKey()],
value: $data['value'] ?? 1,
max: $data['max'] ?? null
);
@@ -369,7 +367,7 @@ class Update extends Action
$dbForProject->increaseDocumentAttribute(
collection: $collectionId,
id: $documentId,
attribute: $data['attribute'],
attribute: $data[$this->getAttributeKey()],
value: $data['value'] ?? 1,
max: $data['max'] ?? null
);
@@ -394,7 +392,7 @@ class Update extends Action
$state[$collectionId][$documentId] = $dbForProject->decreaseDocumentAttribute(
collection: $collectionId,
id: $documentId,
attribute: $data['attribute'],
attribute: $data[$this->getAttributeKey()],
value: $data['value'] ?? 1,
min: $data['min'] ?? null
);
@@ -406,7 +404,7 @@ class Update extends Action
$dbForProject->decreaseDocumentAttribute(
collection: $collectionId,
id: $documentId,
attribute: $data['attribute'],
attribute: $data[$this->getAttributeKey()],
value: $data['value'] ?? 1,
min: $data['min'] ?? null
);
@@ -447,8 +445,6 @@ class Update extends Action
\DateTime $createdAt,
array &$state
): void {
\var_dump($data);
$queries = Query::parseQueries($data['queries'] ?? []);
$dbForProject->updateDocuments(
@@ -3,7 +3,6 @@
namespace Appwrite\Platform\Modules\Databases\Http\Databases\Transactions;
use Appwrite\Extend\Exception;
use Appwrite\Platform\Action;
use Appwrite\SDK\AuthType;
use Appwrite\SDK\ContentType;
use Appwrite\SDK\Method;
@@ -20,7 +19,7 @@ class XList extends Action
{
public static function getName(): string
{
return 'listTransactions';
return 'listDatabasesTransactions';
}
protected function getResponseModel(): string
@@ -37,8 +37,8 @@ class Create extends BooleanCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-boolean-column.md',
auth: [AuthType::KEY],
@@ -39,8 +39,8 @@ class Update extends BooleanUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-boolean-column.md',
auth: [AuthType::KEY],
@@ -39,8 +39,8 @@ class Create extends DatetimeCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-datetime-column.md',
auth: [AuthType::KEY],
@@ -41,8 +41,8 @@ class Update extends DatetimeUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-datetime-column.md',
auth: [AuthType::KEY],
@@ -38,8 +38,8 @@ class Delete extends AttributesDelete
->label('audits.event', 'column.delete')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/delete-column.md',
auth: [AuthType::KEY],
@@ -38,8 +38,8 @@ class Create extends EmailCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-email-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Update extends EmailUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-email-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Create extends EnumCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-enum-column.md',
auth: [AuthType::KEY],
@@ -42,8 +42,8 @@ class Update extends EnumUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-enum-column.md',
auth: [AuthType::KEY],
@@ -38,8 +38,8 @@ class Create extends FloatCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-float-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Update extends FloatUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-float-column.md',
auth: [AuthType::KEY],
@@ -44,8 +44,8 @@ class Get extends AttributesGet
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/get-column.md',
auth: [AuthType::KEY],
@@ -38,8 +38,8 @@ class Create extends IPCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-ip-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Update extends IPUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-ip-column.md',
auth: [AuthType::KEY],
@@ -38,8 +38,8 @@ class Create extends IntegerCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-integer-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Update extends IntegerUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-integer-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Create extends LineCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-line-column.md',
auth: [AuthType::KEY],
@@ -41,8 +41,8 @@ class Update extends LineUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-line-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Create extends PointCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-point-column.md',
auth: [AuthType::KEY],
@@ -41,8 +41,8 @@ class Update extends PointUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-point-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Create extends PolygonCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-polygon-column.md',
auth: [AuthType::KEY],
@@ -41,8 +41,8 @@ class Update extends PolygonUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-polygon-column.md',
auth: [AuthType::KEY],
@@ -39,8 +39,8 @@ class Create extends RelationshipCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-relationship-column.md',
auth: [AuthType::KEY],
@@ -39,8 +39,8 @@ class Update extends RelationshipUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-relationship-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Create extends StringCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-string-column.md',
auth: [AuthType::KEY],
@@ -42,8 +42,8 @@ class Update extends StringUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-string-column.md',
auth: [AuthType::KEY],
@@ -38,8 +38,8 @@ class Create extends URLCreate
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/create-url-column.md',
auth: [AuthType::KEY],
@@ -40,8 +40,8 @@ class Update extends URLUpdate
->label('audits.event', 'column.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/update-url-column.md',
auth: [AuthType::KEY],
@@ -33,8 +33,8 @@ class XList extends AttributesXList
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: self::getName(),
description: '/docs/references/tablesdb/list-columns.md',
auth: [AuthType::KEY],
@@ -40,7 +40,7 @@ class Create extends CollectionCreate
->label('audits.event', 'table.create')
->label('audits.resource', 'database/{request.databaseId}/table/{response.$id}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
namespace: $this->getSDKNamespace(),
group: 'tables',
name: self::getName(),
description: '/docs/references/tablesdb/create-table.md',
@@ -36,7 +36,7 @@ class Delete extends CollectionDelete
->label('audits.event', 'table.delete')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
namespace: $this->getSDKNamespace(),
group: 'tables',
name: self::getName(),
description: '/docs/references/tablesdb/delete-table.md',
@@ -33,7 +33,7 @@ class Get extends CollectionGet
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
namespace: $this->getSDKNamespace(),
group: 'tables',
name: self::getName(),
description: '/docs/references/tablesdb/get-table.md',
@@ -42,8 +42,8 @@ class Create extends IndexCreate
->label('audits.event', 'index.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: 'createIndex', // getName needs to be different from parent action to avoid conflict in path name
description: '/docs/references/tablesdb/create-index.md',
auth: [AuthType::KEY],
@@ -41,8 +41,8 @@ class Delete extends IndexDelete
->label('audits.event', 'index.delete')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: 'deleteIndex', // getName needs to be different from parent action to avoid conflict in path name
description: '/docs/references/tablesdb/delete-index.md',
auth: [AuthType::KEY],
@@ -34,8 +34,8 @@ class Get extends IndexGet
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: 'getIndex', // getName needs to be different from parent action to avoid conflict in path name
description: '/docs/references/tablesdb/get-index.md',
auth: [AuthType::KEY],
@@ -34,8 +34,8 @@ class XList extends IndexXList
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
group: $this->getSdkGroup(),
namespace: $this->getSDKNamespace(),
group: $this->getSDKGroup(),
name: 'listIndexes', // getName needs to be different from parent action to avoid conflict in path name
description: '/docs/references/tablesdb/list-indexes.md',
auth: [AuthType::KEY],

Some files were not shown because too many files have changed in this diff Show More