Class: Sequent::Core::BaseCommandHandler

Inherits:
Object
  • Object
show all
Includes:
Helpers::SelfApplier, Helpers::UuidHelper
Defined in:
lib/sequent/core/base_command_handler.rb

Overview

Base class for command handlers CommandHandlers are responsible for propagating a command to the correct Sequent::Core::AggregateRoot or creating a new one. For example:

class InvoiceCommandHandler < Sequent::Core::BaseCommandHandler
  on CreateInvoiceCommand do |command|
    repository.add_aggregate Invoice.new(command.aggregate_id)
  end

  on PayInvoiceCommanddo |command|
    do_with_aggregate(command, Invoice) {|invoice|invoice.pay(command.pay_date)}
  end
end

Instance Method Summary collapse

Methods included from Helpers::SelfApplier

#handle_message, included

Methods included from Helpers::UuidHelper

new_uuid

Constructor Details

#initialize(repository) ⇒ BaseCommandHandler

Returns a new instance of BaseCommandHandler.



23
24
25
# File 'lib/sequent/core/base_command_handler.rb', line 23

def initialize(repository)
  @repository = repository
end