diff --git a/src/Database/Database.php b/src/Database/Database.php index 49ecee7e4..60bf3e267 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -116,6 +116,7 @@ class Database public const EVENT_DOCUMENT_FIND = 'document_find'; public const EVENT_DOCUMENT_CREATE = 'document_create'; + public const EVENT_DOCUMENT_PURGE = 'document_purge'; public const EVENT_DOCUMENTS_CREATE = 'documents_create'; public const EVENT_DOCUMENTS_DELETE = 'documents_delete'; public const EVENT_DOCUMENT_READ = 'document_read'; @@ -5331,6 +5332,11 @@ public function purgeCachedDocument(string $collectionId, string $id): bool $this->cache->purge($collectionKey, $documentKey); $this->cache->purge($documentKey); + $this->trigger(self::EVENT_DOCUMENT_PURGE, new Document([ + '$id' => $id, + '$collection' => $collectionId + ])); + return true; } diff --git a/tests/e2e/Adapter/Base.php b/tests/e2e/Adapter/Base.php index ae6ad4653..e100ee69e 100644 --- a/tests/e2e/Adapter/Base.php +++ b/tests/e2e/Adapter/Base.php @@ -17327,24 +17327,37 @@ public function testEvents(): void Database::EVENT_COLLECTION_CREATE, Database::EVENT_COLLECTION_LIST, Database::EVENT_COLLECTION_READ, + Database::EVENT_DOCUMENT_PURGE, Database::EVENT_ATTRIBUTE_CREATE, Database::EVENT_ATTRIBUTE_UPDATE, Database::EVENT_INDEX_CREATE, Database::EVENT_DOCUMENT_CREATE, + Database::EVENT_DOCUMENT_PURGE, Database::EVENT_DOCUMENT_UPDATE, Database::EVENT_DOCUMENT_READ, Database::EVENT_DOCUMENT_FIND, Database::EVENT_DOCUMENT_FIND, Database::EVENT_DOCUMENT_COUNT, Database::EVENT_DOCUMENT_SUM, + Database::EVENT_DOCUMENT_PURGE, Database::EVENT_DOCUMENT_INCREASE, + Database::EVENT_DOCUMENT_PURGE, Database::EVENT_DOCUMENT_DECREASE, Database::EVENT_DOCUMENTS_CREATE, + Database::EVENT_DOCUMENT_PURGE, + Database::EVENT_DOCUMENT_PURGE, + Database::EVENT_DOCUMENT_PURGE, Database::EVENT_DOCUMENTS_UPDATE, Database::EVENT_INDEX_DELETE, + Database::EVENT_DOCUMENT_PURGE, Database::EVENT_DOCUMENT_DELETE, Database::EVENT_DOCUMENTS_DELETE, Database::EVENT_ATTRIBUTE_DELETE, + Database::EVENT_DOCUMENT_PURGE, + Database::EVENT_DOCUMENT_PURGE, + Database::EVENT_DOCUMENTS_DELETE, + Database::EVENT_DOCUMENT_PURGE, + Database::EVENT_ATTRIBUTE_DELETE, Database::EVENT_COLLECTION_DELETE, Database::EVENT_DATABASE_DELETE ];