/** * Creates instance for a query * * @param Query $query The query * * @return QueryMessage */ public static function create(Query $query) : QueryMessage { $timestamp = DateTime::now(); $id = MessageId::generate(); $metaData = MetaData::create(); return new static($id, $timestamp, $query, $metaData); }
/** * Creates instance for a command * * @param Command $command The command * * @return CommandMessage */ public static function create(Command $command) : CommandMessage { $timestamp = DateTime::now(); $id = MessageId::generate(); $metaData = MetaData::create(); return new static($id, $timestamp, $command, $metaData); }
/** * Creates instance for an event * * @param Event $event The event * * @return EventMessage */ public static function create(Event $event) : EventMessage { $timestamp = DateTime::now(); $id = MessageId::generate(); $metaData = MetaData::create(); return new static($id, $timestamp, $event, $metaData); }
/** * {@inheritdoc} */ public function execute(Command $command) { try { $timetamp = DateTime::now(); $messageId = MessageId::generate(); $metaData = new MetaData(); $this->pipe(new DomainCommandMessage($messageId, $timetamp, $command, $metaData)); } catch (Exception $exception) { throw CommandException::create($exception->getMessage(), $exception); } }
/** * {@inheritdoc} */ public function fetch(Query $query) { try { $timetamp = DateTime::now(); $messageId = MessageId::generate(); $metaData = new MetaData(); $data = $this->pipe(new DomainQueryMessage($messageId, $timetamp, $query, $metaData)); } catch (Exception $exception) { throw QueryException::create($exception->getMessage(), $exception); } return $data; }
/** * Records a domain event * * @param DomainEvent $domainEvent The domain event * * @return void */ public function record(DomainEvent $domainEvent) { $dateTime = DateTime::now(); $messageId = MessageId::generate(); $metaData = new MetaData(); $message = new DomainEventMessage($this->aggregateId, $this->aggregateType, $messageId, $dateTime, $domainEvent, $metaData, $this->nextSequence()); $this->lastSequence = $message->sequence(); $this->messages->add($message); }