class HecksAdapters::DynamoDB::Commands::Read

Read a resource on DynamoDB

Attributes

client[R]
head[R]
query[R]

Public Class Methods

new(query, head, client) click to toggle source
# File lib/commands/read.rb, line 6
def initialize(query, head, client)
  @client = client
  @query = query
  @head = head
end

Public Instance Methods

call() click to toggle source
# File lib/commands/read.rb, line 12
def call
  result = get_item
  return nil if result.nil?
  PizzaBuilder::Domain::Pizzas.head.new(result)
end

Private Instance Methods

get_item() click to toggle source
# File lib/commands/read.rb, line 22
def get_item
  symbolize(
  client.get_item(
    key: query,
    table_name: head.name
  ).item)
end
symbolize(obj) click to toggle source
# File lib/commands/read.rb, line 30
def symbolize(obj)
  return obj.inject({}){|memo,(k,v)| memo[k.to_sym] =  symbolize(v); memo} if obj.is_a? Hash
  return obj.inject([]){|memo,v    | memo           << symbolize(v); memo} if obj.is_a? Array
  return obj
end