/** * @inheritdoc */ public function createBody(DomainMessage $domainMessage) { $this->guardSerializable($domainMessage->getMetadata()); $this->guardSerializable($domainMessage->getPayload()); $data = ['id' => $domainMessage->getId(), 'playhead' => $domainMessage->getPlayhead(), 'metadata' => $domainMessage->getMetadata()->serialize(), 'payload' => $domainMessage->getPayload()->serialize(), 'recorded_on' => $domainMessage->getRecordedOn()->toString()]; return json_encode($data); }
/** * Appends an event to the event store */ private function appendEvent(DomainMessage $event) { $this->connection->table($this->table)->insert(['uuid' => (string) $event->getId(), 'playhead' => (int) $event->getPlayhead(), 'metadata' => $this->serialize($event->getMetadata()), 'payload' => $this->serialize($event->getPayload()), 'recorded_on' => $event->getRecordedOn()->toString(), 'type' => $event->getType()]); }
public function whenRegistrationRequestSubmitted(RegistrationRequestSubmitted $event, DomainMessage $message) { $this->statuses->save(new RequestStatus($event->registrationRequestId(), $event->FullName()->fullName(), false, false, false, false, DateTimeImmutable::createFromFormat(\Broadway\Domain\DateTime::FORMAT_STRING, $message->getRecordedOn()->toString()))); }
/** * @param InputInterface $input * @param OutputInterface $output * @param DomainMessage $domainMessage */ private function interactOnDomainMessage(InputInterface $input, OutputInterface $output, DomainMessage $domainMessage) { $metadata = ""; $payload = ""; $reflector = new DomainMessageReflector($domainMessage); $questionHelper = new QuestionHelper(); $question = new ConfirmationQuestion('Continue to next playhead? (Y/n)', true); $reflections = $reflector->reflect(DomainMessageReflector::METADATA); foreach ($reflections as $property => $value) { $metadata = $metadata . $property . ': ' . $value . " "; } $reflections = $reflector->reflect(DomainMessageReflector::PAYLOAD); foreach ($reflections as $property => $value) { $payload = $payload . $property . ': ' . $value . " "; } $table = new Table($output); $table->setHeaders(array("Property", "Value"))->setRows(array(array("Id", $domainMessage->getId()), array("Recorded at", $domainMessage->getRecordedOn()->toString()), array("Playhead number", $domainMessage->getPlayhead()), array("Command", $domainMessage->getType())))->render(); $table = new Table($output); $table->setHeaders(array("Metadata"))->setRows(array(array($metadata)))->render(); $table = new Table($output); $table->setHeaders(array("Payload"))->setRows(array(array($payload)))->render(); if (false === $questionHelper->ask($input, $output, $question)) { exit("replaying stopped"); } }
private function insertMessage(Connection $connection, DomainMessage $domainMessage) { $data = array('uuid' => $this->convertIdentifierToStorageValue((string) $domainMessage->getId()), 'playhead' => $domainMessage->getPlayhead(), 'metadata' => json_encode($this->metadataSerializer->serialize($domainMessage->getMetadata())), 'payload' => json_encode($this->payloadSerializer->serialize($domainMessage->getPayload())), 'recorded_on' => $domainMessage->getRecordedOn()->toString(), 'type' => $domainMessage->getType()); $connection->insert($this->tableName, $data); }
/** * Turns a DomainMessage into array using broadway's serializers. * * @param DomainMessage $message The domain message. * @throws SerializationException When the serializers cannot perform. * @return array An array representation of the message. */ private function convertDomainMessage(DomainMessage $message) { $metadata = $this->metadataSerializer->serialize($message->getMetadata()); $payload = $this->payloadSerializer->serialize($message->getPayload()); return ['uuid' => (string) $message->getId(), 'playhead' => $message->getPlayhead(), 'metadata' => json_encode($metadata), 'payload' => json_encode($payload), 'recorded_on' => $message->getRecordedOn()->toString(), 'type' => $message->getType()]; }
/** * @param DomainMessage $object * @return array */ public function serialize(DomainMessage $object) { return ['id' => $object->getId(), 'playhead' => $object->getPlayhead(), 'metadata' => $this->metadataSerializer->serialize($object->getMetadata()), 'payload' => $this->payloadSerializer->serialize($object->getPayload()), 'recordedOn' => $object->getRecordedOn()->toString()]; }