class Lita::Interactors::ResetQuantity

Set the customer quantity to zero

Attributes

data[R]

Public Class Methods

new(handler, data) click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 12
def initialize(handler, data)
  @handler = handler
  @data = data
end

Public Instance Methods

perform() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 17
def perform
  if service_exists?
    update_costumer_if_exist
  else
    @error = msg_not_found(service_name: name)
  end
  self
end

Private Instance Methods

customer() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 40
def customer
  service[:customers][customer_name.to_sym]
end
customer_exists?() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 48
def customer_exists?
  service[:customers].keys.include?(customer_name.to_sym)
end
customer_name() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 32
def customer_name
  @customer_name ||= data[2].delete('@')
end
name() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 28
def name
  @name ||= data[1]
end
reset_quantity() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 66
def reset_quantity
  customer[:quantity] = 0

  @message = I18n.t('lita.handlers.service.reset.success',
                    customer_name: customer_name)
end
service() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 36
def service
  @service ||= repository.find(name)
end
service_exists?() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 44
def service_exists?
  repository.exists?(name)
end
update_costumer_if_exist() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 52
def update_costumer_if_exist
  if customer_exists?
    update_customer_quantity
  else
    @error = msg_customer_not_found(service_name: name,
                                    customer_name: customer_name)
  end
end
update_customer_quantity() click to toggle source
# File lib/lita/interactors/reset_quantity.rb, line 61
def update_customer_quantity
  reset_quantity
  repository.update(service)
end