1
0
Fork 0
mirror of synced 2024-06-27 02:31:04 +12:00

chore: use deletes worker for deleting audit logs

This commit is contained in:
Christy Jacob 2023-10-18 18:54:20 +00:00
parent dbfe5e45aa
commit 72d0865ad8
3 changed files with 35 additions and 48 deletions

View file

@ -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

60
composer.lock generated
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": "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"
}

View file

@ -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