chore: fix databases worker realtime queueing

This commit is contained in:
Chirag Aggarwal 2025-02-11 05:00:45 +00:00
parent bcdae7f4e3
commit f666e18154

View file

@ -197,7 +197,7 @@ class Databases extends Action
throw $e; throw $e;
} finally { } finally {
$this->trigger($database, $collection, $attribute, $project, $event, $queueForRealtime); $this->trigger($database, $collection, $project, $attribute, null, $attribute, $event, $queueForRealtime);
if (! $relatedCollection->isEmpty()) { if (! $relatedCollection->isEmpty()) {
$dbForProject->purgeCachedDocument('database_' . $database->getInternalId(), $relatedCollection->getId()); $dbForProject->purgeCachedDocument('database_' . $database->getInternalId(), $relatedCollection->getId());
@ -304,7 +304,7 @@ class Databases extends Action
throw $e; throw $e;
} finally { } finally {
$this->trigger($database, $collection, $attribute, $project, $event, $queueForRealtime); $this->trigger($database, $collection, $project, $attribute, null, $attribute, $event, $queueForRealtime);
} }
// The underlying database removes/rebuilds indexes when attribute is removed // The underlying database removes/rebuilds indexes when attribute is removed
@ -418,7 +418,7 @@ class Databases extends Action
throw $e; throw $e;
} finally { } finally {
$this->trigger($database, $collection, $index, $project, $event, $queueForRealtime); $this->trigger($database, $collection, $project, null, $index, $index, $event, $queueForRealtime);
$dbForProject->purgeCachedDocument('database_' . $database->getInternalId(), $collectionId); $dbForProject->purgeCachedDocument('database_' . $database->getInternalId(), $collectionId);
} }
} }
@ -474,7 +474,7 @@ class Databases extends Action
throw $e; throw $e;
} finally { } finally {
$this->trigger($database, $collection, $index, $project, $event, $queueForRealtime); $this->trigger($database, $collection, $project, null, $index, $index, $event, $queueForRealtime);
$dbForProject->purgeCachedDocument('database_' . $database->getInternalId(), $collection->getId()); $dbForProject->purgeCachedDocument('database_' . $database->getInternalId(), $collection->getId());
} }
} }
@ -599,16 +599,20 @@ class Databases extends Action
/** /**
* @param Document $database * @param Document $database
* @param Document $collection * @param Document $collection
* @param Document $attribute
* @param Document $project * @param Document $project
* @param Document|null $attribute
* @param Document|null $index
* @param Document $payload
* @param Realtime $queueForRealtime * @param Realtime $queueForRealtime
* @return void * @return void
*/ */
protected function trigger( protected function trigger(
Document $database, Document $database,
Document $collection, Document $collection,
Document $attribute,
Document $project, Document $project,
Document|null $attribute = null,
Document|null $index = null,
Document $payload,
string $event, string $event,
Realtime $queueForRealtime Realtime $queueForRealtime
): void { ): void {
@ -617,9 +621,17 @@ class Databases extends Action
->setProjectId('console') ->setProjectId('console')
->setEvent($event) ->setEvent($event)
->setParam('databaseId', $database->getId()) ->setParam('databaseId', $database->getId())
->setParam('collectionId', $collection->getId()) ->setParam('collectionId', $collection->getId());
->setParam('attributeId', $attribute->getId())
->setPayload($attribute->getArrayCopy()) if ($attribute !== null) {
$queueForRealtime->setParam('attributeId', $attribute->getId());
}
if ($index !== null) {
$queueForRealtime->setParam('indexId', $index->getId());
}
$queueForRealtime
->setPayload($payload->getArrayCopy())
->trigger(); ->trigger();
} }
} }