class Lita::Interactors::DeleteCustomer

Inscribes a customer in a service

Attributes

data[R]

Public Class Methods

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

Public Instance Methods

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

Private Instance Methods

customer_in_service?() click to toggle source
# File lib/lita/interactors/delete_customer.rb, line 44
def customer_in_service?
  service[:customers].keys.include?(customer_name.to_sym)
end
customer_name() click to toggle source
# File lib/lita/interactors/delete_customer.rb, line 32
def customer_name
  @customer_name ||= data[3].delete('@')
end
delete_customer_from_service() click to toggle source
# File lib/lita/interactors/delete_customer.rb, line 57
def delete_customer_from_service
  service[:customers].delete(customer_name.to_sym)
  repository.update(service)
  @message = I18n.t('lita.handlers.service.delete_customer.success',
                    service_name: name, customer_name: customer_name)
end
delete_customer_if_in_service() click to toggle source
# File lib/lita/interactors/delete_customer.rb, line 48
def delete_customer_if_in_service
  if customer_in_service?
    delete_customer_from_service
  else
    @error = msg_customer_not_found(service_name: name,
                                    customer_name: customer_name)
  end
end
name() click to toggle source
# File lib/lita/interactors/delete_customer.rb, line 28
def name
  @name ||= data[1]
end
service() click to toggle source
# File lib/lita/interactors/delete_customer.rb, line 36
def service
  @service ||= repository.find(name)
end
service_exists?() click to toggle source
# File lib/lita/interactors/delete_customer.rb, line 40
def service_exists?
  repository.exists?(name)
end