From 1b2f51ce13c84664641dafaa3c2696a649c46ed4 Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 21 Jan 2025 20:47:08 +0200 Subject: [PATCH 1/8] added EVENT_DOCUMENT_PURGE on purgeCachedDocument method --- src/Database/Database.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Database/Database.php b/src/Database/Database.php index 49ecee7e4..cf09743f2 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, [ + 'id' => $id, + 'collectionId' => $collectionId + ]); + return true; } From fe9554ec943e1dc560e1ee8be6d0043a5054f429 Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 21 Jan 2025 21:04:15 +0200 Subject: [PATCH 2/8] added EVENT_DOCUMENT_PURGE on purgeCachedDocument method --- tests/e2e/Adapter/Base.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/e2e/Adapter/Base.php b/tests/e2e/Adapter/Base.php index ae6ad4653..af39777f9 100644 --- a/tests/e2e/Adapter/Base.php +++ b/tests/e2e/Adapter/Base.php @@ -17339,6 +17339,7 @@ public function testEvents(): void Database::EVENT_DOCUMENT_SUM, Database::EVENT_DOCUMENT_INCREASE, Database::EVENT_DOCUMENT_DECREASE, + Database::EVENT_DOCUMENT_PURGE, Database::EVENT_DOCUMENTS_CREATE, Database::EVENT_DOCUMENTS_UPDATE, Database::EVENT_INDEX_DELETE, @@ -17398,6 +17399,7 @@ public function testEvents(): void $database->sum($collectionId, 'attr1'); $database->increaseDocumentAttribute($collectionId, $document->getId(), 'attr1'); $database->decreaseDocumentAttribute($collectionId, $document->getId(), 'attr1'); + $database->purgeCachedDocument($collectionId, $document->getId()); }, ['should-not-execute']); $this->assertFalse($executed); From b47f95b4cf345064180db9587544a761725de82f Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 21 Jan 2025 21:10:51 +0200 Subject: [PATCH 3/8] linter --- src/Database/Database.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Database/Database.php b/src/Database/Database.php index cf09743f2..679ed048c 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -5332,7 +5332,7 @@ public function purgeCachedDocument(string $collectionId, string $id): bool $this->cache->purge($collectionKey, $documentKey); $this->cache->purge($documentKey); - $this->trigger(self::EVENT_DOCUMENT_PURGE, [ + $this->trigger(self::EVENT_DOCUMENT_PURGE, [ 'id' => $id, 'collectionId' => $collectionId ]); From 224bf92010e7ade02cf31c05177942a3f52fb744 Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 21 Jan 2025 21:23:10 +0200 Subject: [PATCH 4/8] linter --- tests/e2e/Adapter/Base.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/Adapter/Base.php b/tests/e2e/Adapter/Base.php index af39777f9..a16e7cd06 100644 --- a/tests/e2e/Adapter/Base.php +++ b/tests/e2e/Adapter/Base.php @@ -17339,7 +17339,6 @@ public function testEvents(): void Database::EVENT_DOCUMENT_SUM, Database::EVENT_DOCUMENT_INCREASE, Database::EVENT_DOCUMENT_DECREASE, - Database::EVENT_DOCUMENT_PURGE, Database::EVENT_DOCUMENTS_CREATE, Database::EVENT_DOCUMENTS_UPDATE, Database::EVENT_INDEX_DELETE, @@ -17347,7 +17346,8 @@ public function testEvents(): void Database::EVENT_DOCUMENTS_DELETE, Database::EVENT_ATTRIBUTE_DELETE, Database::EVENT_COLLECTION_DELETE, - Database::EVENT_DATABASE_DELETE + Database::EVENT_DATABASE_DELETE, + Database::EVENT_DOCUMENT_PURGE ]; $database->on(Database::EVENT_ALL, 'test', function ($event, $data) use (&$events) { From b4da755c4e20cda30849520e51c0e0d4c3c971ed Mon Sep 17 00:00:00 2001 From: shimon Date: Tue, 21 Jan 2025 21:29:44 +0200 Subject: [PATCH 5/8] linter --- tests/e2e/Adapter/Base.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/Adapter/Base.php b/tests/e2e/Adapter/Base.php index a16e7cd06..2e0821479 100644 --- a/tests/e2e/Adapter/Base.php +++ b/tests/e2e/Adapter/Base.php @@ -17399,7 +17399,6 @@ public function testEvents(): void $database->sum($collectionId, 'attr1'); $database->increaseDocumentAttribute($collectionId, $document->getId(), 'attr1'); $database->decreaseDocumentAttribute($collectionId, $document->getId(), 'attr1'); - $database->purgeCachedDocument($collectionId, $document->getId()); }, ['should-not-execute']); $this->assertFalse($executed); @@ -17424,6 +17423,7 @@ public function testEvents(): void $database->deleteAttribute($collectionId, 'attr1'); $database->deleteCollection($collectionId); $database->delete('hellodb'); + $database->purgeCachedDocument($collectionId, $document->getId()); }); } } From 2d5d5e8c54e50ead6f93b8427a4aa1e9777436e4 Mon Sep 17 00:00:00 2001 From: shimon Date: Wed, 22 Jan 2025 07:57:11 +0200 Subject: [PATCH 6/8] returning new Document from purgeCachedDocument --- src/Database/Database.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Database/Database.php b/src/Database/Database.php index 679ed048c..60bf3e267 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -5332,10 +5332,10 @@ public function purgeCachedDocument(string $collectionId, string $id): bool $this->cache->purge($collectionKey, $documentKey); $this->cache->purge($documentKey); - $this->trigger(self::EVENT_DOCUMENT_PURGE, [ - 'id' => $id, - 'collectionId' => $collectionId - ]); + $this->trigger(self::EVENT_DOCUMENT_PURGE, new Document([ + '$id' => $id, + '$collection' => $collectionId + ])); return true; } From 48034a31da63b6fe6a8584d1fb30ec86ff524039 Mon Sep 17 00:00:00 2001 From: shimon Date: Wed, 22 Jan 2025 12:23:24 +0200 Subject: [PATCH 7/8] fix tests --- tests/e2e/Adapter/Base.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tests/e2e/Adapter/Base.php b/tests/e2e/Adapter/Base.php index 2e0821479..bffda16bb 100644 --- a/tests/e2e/Adapter/Base.php +++ b/tests/e2e/Adapter/Base.php @@ -17327,32 +17327,46 @@ 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, - Database::EVENT_DOCUMENT_PURGE + Database::EVENT_DATABASE_DELETE ]; $database->on(Database::EVENT_ALL, 'test', function ($event, $data) use (&$events) { $shifted = array_shift($events); + $this->assertEquals($shifted, $event); + }); if ($this->getDatabase()->getAdapter()->getSupportForSchemas()) { @@ -17423,7 +17437,6 @@ public function testEvents(): void $database->deleteAttribute($collectionId, 'attr1'); $database->deleteCollection($collectionId); $database->delete('hellodb'); - $database->purgeCachedDocument($collectionId, $document->getId()); }); } } From 76a5b1dfa2c5d2bacbfa77c645fe2946ca0136d7 Mon Sep 17 00:00:00 2001 From: shimon Date: Wed, 22 Jan 2025 12:25:38 +0200 Subject: [PATCH 8/8] fix tests --- tests/e2e/Adapter/Base.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/e2e/Adapter/Base.php b/tests/e2e/Adapter/Base.php index bffda16bb..e100ee69e 100644 --- a/tests/e2e/Adapter/Base.php +++ b/tests/e2e/Adapter/Base.php @@ -17364,9 +17364,7 @@ public function testEvents(): void $database->on(Database::EVENT_ALL, 'test', function ($event, $data) use (&$events) { $shifted = array_shift($events); - $this->assertEquals($shifted, $event); - }); if ($this->getDatabase()->getAdapter()->getSupportForSchemas()) {