Skip to content

Commit 146221a

Browse files
committed
(fix): propagate write hooks unconditionally in Pool, forward to Mirror destination
1 parent 843dce3 commit 146221a

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

src/Database/Adapter/Pool.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,9 @@ public function delegate(string $method, array $args): mixed
8989
foreach ($this->queryTransforms as $tName => $tTransform) {
9090
$adapter->addTransform($tName, $tTransform);
9191
}
92-
// Sync write hooks for DML operations only (not DDL like createCollection)
93-
if (\in_array($method, ['createDocument', 'createDocuments', 'updateDocument', 'updateDocuments', 'deleteDocument', 'deleteDocuments', 'upsertDocuments'])) {
94-
foreach ($this->writeHooks as $hook) {
95-
if (empty(\array_filter($adapter->getWriteHooks(), fn ($h) => $h::class === $hook::class))) {
96-
$adapter->addWriteHook($hook);
97-
}
92+
foreach ($this->writeHooks as $hook) {
93+
if (empty(\array_filter($adapter->getWriteHooks(), fn ($h) => $h::class === $hook::class))) {
94+
$adapter->addWriteHook($hook);
9895
}
9996
}
10097
return $adapter->{$method}(...$args);

src/Database/Mirror.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Utopia\Database\Helpers\ID;
1111
use Utopia\Database\Hook\Lifecycle;
1212
use Utopia\Database\Hook\Relationships;
13+
use Utopia\Database\Hook\Write;
1314
use Utopia\Database\Mirroring\Filter;
1415
use Utopia\Database\Validator\Authorization;
1516
use Utopia\Query\OrderDirection;
@@ -1298,6 +1299,10 @@ public function addHook(\Utopia\Query\Hook $hook): static
12981299
$this->destination?->addHook(new Relationships($this->destination));
12991300
}
13001301

1302+
if ($hook instanceof Write) {
1303+
$this->destination?->getAdapter()->addWriteHook($hook);
1304+
}
1305+
13011306
return $this;
13021307
}
13031308

0 commit comments

Comments
 (0)