示例#1
0
 /**
  * @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);
 }
示例#2
0
 /**
  * @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);
 }
示例#3
0
 /**
  * @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);
 }