class AccountComponent::Commands::Deposit

Public Class Methods

call(account_id:, amount:, deposit_id: nil, previous_message: nil) click to toggle source
# File lib/account_component/commands/deposit.rb, line 12
def self.call(account_id:, amount:, deposit_id: nil, previous_message: nil)
  deposit_id ||= Identifier::UUID::Random.get
  instance = self.build
  instance.(deposit_id: deposit_id, account_id: account_id, amount: amount, previous_message: previous_message)
end
configure(receiver, attr_name: nil) click to toggle source
# File lib/account_component/commands/deposit.rb, line 6
def self.configure(receiver, attr_name: nil)
  attr_name ||= :deposit
  instance = build
  receiver.public_send("#{attr_name}=", instance)
end

Public Instance Methods

call(deposit_id:, account_id:, amount:, previous_message: nil) click to toggle source
# File lib/account_component/commands/deposit.rb, line 18
def call(deposit_id:, account_id:, amount:, previous_message: nil)
  deposit = self.class.build_message(Messages::Commands::Deposit, previous_message)

  deposit.deposit_id = deposit_id
  deposit.account_id = account_id
  deposit.amount = amount
  deposit.time = clock.iso8601

  stream_name = command_stream_name(account_id)

  write.(deposit, stream_name)

  deposit
end