From 72d0865ad8108dfc474a137e32ec9343f5be40c1 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Wed, 18 Oct 2023 18:54:20 +0000 Subject: [PATCH] chore: use deletes worker for deleting audit logs --- app/controllers/api/databases.php | 10 ++-- composer.lock | 60 +++++++++++---------- src/Appwrite/Platform/Workers/Databases.php | 13 ----- 3 files changed, 35 insertions(+), 48 deletions(-) diff --git a/app/controllers/api/databases.php b/app/controllers/api/databases.php index cdfdd8172b..e98016c022 100644 --- a/app/controllers/api/databases.php +++ b/app/controllers/api/databases.php @@ -3458,10 +3458,10 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu ->inject('requestTimestamp') ->inject('response') ->inject('dbForProject') - ->inject('queueForDatabase') + ->inject('deletes') ->inject('queueForEvents') ->inject('mode') - ->action(function (string $databaseId, string $collectionId, string $documentId, ?\DateTime $requestTimestamp, Response $response, Database $dbForProject, EventDatabase $queueForDatabase, Event $queueForEvents, string $mode) { + ->action(function (string $databaseId, string $collectionId, string $documentId, ?\DateTime $requestTimestamp, Response $response, Database $dbForProject, Delete $deletes, Event $queueForEvents, string $mode) { $database = Authorization::skip(fn() => $dbForProject->getDocument('databases', $databaseId)); $isAPIKey = Auth::isAppUser(Authorization::getRoles()); @@ -3532,10 +3532,8 @@ App::delete('/v1/databases/:databaseId/collections/:collectionId/documents/:docu $processDocument($collection, $document); - $queueForDatabase - ->setType(DATABASE_TYPE_DELETE_DOCUMENT) - ->setDatabase($database) - ->setCollection($collection) + $deletes + ->setType(DELETE_TYPE_AUDIT) ->setDocument($document); $queueForEvents diff --git a/composer.lock b/composer.lock index a381097e67..392a5b47e4 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "509d6d460bad65092c5e3b8d6b390ec9", + "content-hash": "748f1a5e4fdf0a73ea26ddf0e7822f19", "packages": [ { "name": "adhocore/jwt", @@ -156,11 +156,11 @@ }, { "name": "appwrite/php-runtimes", - "version": "0.13.0", + "version": "0.13.1", "source": { "type": "git", "url": "https://github.com/appwrite/runtimes.git", - "reference": "5ab496b3908992b39275994a23783701c4b3de84" + "reference": "b584d19cdcd82737d0ee5c34d23de791f5ed3610" }, "require": { "php": ">=8.0", @@ -195,7 +195,7 @@ "php", "runtimes" ], - "time": "2023-09-12T19:38:43+00:00" + "time": "2023-10-16T15:39:53+00:00" }, { "name": "chillerlan/php-qrcode", @@ -1797,16 +1797,16 @@ }, { "name": "utopia-php/messaging", - "version": "0.1.1", + "version": "0.2.0", "source": { "type": "git", "url": "https://github.com/utopia-php/messaging.git", - "reference": "a75d66ddd59b834ab500a4878a2c084e6572604a" + "reference": "2d0f474a106bb1da285f85e105c29b46085d3a43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/messaging/zipball/a75d66ddd59b834ab500a4878a2c084e6572604a", - "reference": "a75d66ddd59b834ab500a4878a2c084e6572604a", + "url": "https://api.github.com/repos/utopia-php/messaging/zipball/2d0f474a106bb1da285f85e105c29b46085d3a43", + "reference": "2d0f474a106bb1da285f85e105c29b46085d3a43", "shasum": "" }, "require": { @@ -1815,8 +1815,8 @@ }, "require-dev": { "laravel/pint": "^1.2", - "phpmailer/phpmailer": "6.6.*", - "phpunit/phpunit": "9.5.*" + "phpmailer/phpmailer": "6.8.*", + "phpunit/phpunit": "9.6.*" }, "type": "library", "autoload": { @@ -1839,9 +1839,9 @@ ], "support": { "issues": "https://github.com/utopia-php/messaging/issues", - "source": "https://github.com/utopia-php/messaging/tree/0.1.1" + "source": "https://github.com/utopia-php/messaging/tree/0.2.0" }, - "time": "2023-02-07T05:42:46+00:00" + "time": "2023-09-14T20:48:42+00:00" }, { "name": "utopia-php/migration", @@ -2007,12 +2007,12 @@ "source": { "type": "git", "url": "https://github.com/utopia-php/platform.git", - "reference": "056a60bb65eb12005f451714da0fe35a22f424c2" + "reference": "6c0a1b13864545145e62b051a914b7c3339716b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/platform/zipball/056a60bb65eb12005f451714da0fe35a22f424c2", - "reference": "056a60bb65eb12005f451714da0fe35a22f424c2", + "url": "https://api.github.com/repos/utopia-php/platform/zipball/6c0a1b13864545145e62b051a914b7c3339716b4", + "reference": "6c0a1b13864545145e62b051a914b7c3339716b4", "shasum": "" }, "require": { @@ -2046,9 +2046,9 @@ ], "support": { "issues": "https://github.com/utopia-php/platform/issues", - "source": "https://github.com/utopia-php/platform/tree/feat-custom-queue-names" + "source": "https://github.com/utopia-php/platform/tree/integrate-workers" }, - "time": "2023-10-12T04:31:27+00:00" + "time": "2023-10-16T16:56:37+00:00" }, { "name": "utopia-php/pools", @@ -2160,12 +2160,12 @@ "source": { "type": "git", "url": "https://github.com/utopia-php/queue.git", - "reference": "5f81095e0ec66b2902037181ba3a20f6f9541af7" + "reference": "c6fc4a267ab643500442e0cffcdf952ed80161f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/queue/zipball/5f81095e0ec66b2902037181ba3a20f6f9541af7", - "reference": "5f81095e0ec66b2902037181ba3a20f6f9541af7", + "url": "https://api.github.com/repos/utopia-php/queue/zipball/c6fc4a267ab643500442e0cffcdf952ed80161f4", + "reference": "c6fc4a267ab643500442e0cffcdf952ed80161f4", "shasum": "" }, "require": { @@ -2213,7 +2213,7 @@ "issues": "https://github.com/utopia-php/queue/issues", "source": "https://github.com/utopia-php/queue/tree/feat-get-worker-start" }, - "time": "2023-10-04T14:49:13+00:00" + "time": "2023-10-16T16:02:43+00:00" }, { "name": "utopia-php/registry", @@ -2269,16 +2269,16 @@ }, { "name": "utopia-php/storage", - "version": "0.14.0", + "version": "0.17.0", "source": { "type": "git", "url": "https://github.com/utopia-php/storage.git", - "reference": "eda6651ac16884dc2a79ecb984ea591ba1ed498c" + "reference": "efec5376c02d3d8330f1beb1469e6d6e313e21ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/utopia-php/storage/zipball/eda6651ac16884dc2a79ecb984ea591ba1ed498c", - "reference": "eda6651ac16884dc2a79ecb984ea591ba1ed498c", + "url": "https://api.github.com/repos/utopia-php/storage/zipball/efec5376c02d3d8330f1beb1469e6d6e313e21ee", + "reference": "efec5376c02d3d8330f1beb1469e6d6e313e21ee", "shasum": "" }, "require": { @@ -2286,10 +2286,12 @@ "ext-fileinfo": "*", "ext-lz4": "*", "ext-snappy": "*", + "ext-xz": "*", "ext-zlib": "*", "ext-zstd": "*", "php": ">=8.0", - "utopia-php/framework": "0.*.*" + "utopia-php/framework": "0.*.*", + "utopia-php/system": "0.*.*" }, "require-dev": { "laravel/pint": "1.2.*", @@ -2316,9 +2318,9 @@ ], "support": { "issues": "https://github.com/utopia-php/storage/issues", - "source": "https://github.com/utopia-php/storage/tree/0.14.0" + "source": "https://github.com/utopia-php/storage/tree/0.17.0" }, - "time": "2023-03-15T00:16:34+00:00" + "time": "2023-08-21T11:28:36+00:00" }, { "name": "utopia-php/swoole", @@ -5314,5 +5316,5 @@ "platform-overrides": { "php": "8.0" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/src/Appwrite/Platform/Workers/Databases.php b/src/Appwrite/Platform/Workers/Databases.php index 9a2caf9c4e..94ba333e9a 100644 --- a/src/Appwrite/Platform/Workers/Databases.php +++ b/src/Appwrite/Platform/Workers/Databases.php @@ -71,7 +71,6 @@ class Databases extends Action DATABASE_TYPE_DELETE_ATTRIBUTE => $this->deleteAttribute($database, $collection, $document, $project, $dbForConsole, $dbForProject), DATABASE_TYPE_CREATE_INDEX => $this->createIndex($database, $collection, $document, $project, $dbForConsole, $dbForProject), DATABASE_TYPE_DELETE_INDEX => $this->deleteIndex($database, $collection, $document, $project, $dbForConsole, $dbForProject), - DATABASE_TYPE_DELETE_DOCUMENT => $this->deleteDocument($database, $collection, $document, $project, $dbForProject), default => Console::error('No database operation for type: ' . $type), }; } @@ -532,18 +531,6 @@ class Databases extends Action $this->deleteAuditLogsByResource('database/' . $databaseId . '/collection/' . $collectionId, $project, $dbForProject); } - private function deleteDocument(Document $database, Document $collection, Document $document, Document $project, Database $dbForProject) - { - if ($collection->isEmpty()) { - throw new Exception('Missing collection'); - } - if ($document->isEmpty()) { - throw new Exception('Missing document'); - } - - $this->deleteAuditLogsByResource('document/' . $document->getId(), $project, $dbForProject); - } - /** * @param string $resource * @param Document $project