/** * @param SerializerInterface $serializer * @return GenericDomainEventMessage|GenericEventMessage */ public function toMessage(SerializerInterface $serializer) { $data = $this->toArray(); $id = Uuid::fromString($data['id']); $timestamp = DateTime::fromString($data['timestamp']); $payload = $serializer->deserialize($data['payload'], $data['payload_type']); $metadata = $serializer->deserialize($data['metadata'], Metadata::class); if (array_key_exists('aggregate', $data)) { return new GenericDomainEventMessage($data['aggregate']['type'], $data['aggregate']['id'], $data['aggregate']['seq'], $payload, $metadata, $id, $timestamp); } return new GenericEventMessage($payload, $metadata, $id, $timestamp); }
/** * @param array $data * @return GenericDomainEventMessage|GenericEventMessage */ public function fromArray(array $data) { $payload = $this->serializer->deserialize(json_encode($data['payload']), $data['payloadType']); /** @var Metadata $metadata */ $metadata = $this->serializer->deserialize(json_encode($data['metadata']), Metadata::class); $id = Uuid::fromString($data['id']); $timestamp = DateTime::fromString("{$data['timestamp']}"); if (array_key_exists('aggregateType', $data)) { return new GenericDomainEventMessage($data['aggregateType'], $data['aggregateId'], 0, $payload, $metadata, $id, $timestamp); } return new GenericEventMessage($data['payload'], $data['metadata'], $id, $timestamp); }
/** * @param array $data * @return GenericDomainEventMessage|GenericEventMessage */ public function fromArray(array $data) { $payload = $this->serializer->deserialize($data['payload'], $data['payload_type']); /** @var Metadata $metadata */ $metadata = $this->serializer->deserialize($data['metadata'], Metadata::class); $id = Uuid::fromString($data['event_id']); $timestamp = DateTime::fromString("{$data['event_date']}.{$data['event_date_u']}"); if (array_key_exists('aggregate_type', $data)) { return new GenericDomainEventMessage($data['aggregate_type'], $data['aggregate_id'], $data['sequence_number'], $payload, $metadata, $id, $timestamp); } return new GenericEventMessage($payload, $metadata, $id, $timestamp); }