class PostcodeValidation::UseCase::AddressDetailRetriever

Attributes

address_detail_retriever_gateway[R]
logger[R]

Public Class Methods

new(address_detail_retriever_gateway:, logger: nil) click to toggle source
# File lib/postcode_validation/use_case/address_detail_retriever.rb, line 6
def initialize(address_detail_retriever_gateway:, logger: nil)
  @address_detail_retriever_gateway = address_detail_retriever_gateway
  @logger = logger
end

Public Instance Methods

execute(id:) click to toggle source
# File lib/postcode_validation/use_case/address_detail_retriever.rb, line 11
def execute(id:)
  address = find_address(id)

  formatted(address)
rescue PostcodeValidation::Error::RequestError => e
  log_error(e)
end

Private Instance Methods

find_address(id) click to toggle source
# File lib/postcode_validation/use_case/address_detail_retriever.rb, line 38
def find_address(id)
  @address_detail_retriever_gateway.find(id: id)
end
formatted(address) click to toggle source
# File lib/postcode_validation/use_case/address_detail_retriever.rb, line 23
def formatted(address)
  {
    address_line_1: address.address_line_1,
    address_line_2: address.address_line_2,
    company: address.company,
    city: address.city,
    country: address.country,
    postcode: address.postcode
  }
end
log_error(e) click to toggle source
# File lib/postcode_validation/use_case/address_detail_retriever.rb, line 34
def log_error(e)
  logger.error(e) unless logger.nil?
end