Skip to content

Instantly share code, notes, and snippets.

@Miljar
Created December 14, 2020 16:22
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Miljar/8895c18b1ca014bbbcad1ccb6c149d56 to your computer and use it in GitHub Desktop.
Save Miljar/8895c18b1ca014bbbcad1ccb6c149d56 to your computer and use it in GitHub Desktop.
Prooph Projection state
DocumentReceiverWasRemoved::class => function ($state, DocumentReceiverWasRemoved $event) {
/** @var ReadModel $readModel */
$readModel = $this->readModel();
$receivers = array_filter(
$state[self::DOCUMENTS_KEY][$event->documentId()->toString()][self::DOCUMENT_RECEIVERS_KEY],
function ($receiver) use ($event) {
return $receiver['id'] !== $event->receiver()->value();
}
);
$state[self::DOCUMENTS_KEY][$event->documentId()->toString()][self::DOCUMENT_RECEIVERS_KEY] = $receivers;
// persist to Elastic Search
$readModel->stack(
'removeDocumentReceiver',
$event->documentId()->toString(),
$event->receiver()->value()
);
$readModel->persist();
return $state;
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment