class App42::Shopping::CartResponseBuilder

CartResponseBuilder class converts the JSON response retrieved from the server to the value object i.e Cart

Public Instance Methods

buildArrayResponse(json) click to toggle source

Converts the response in JSON format to the list of value objects i.e Cart

@param json

- response in JSON format

@return List of Cart object filled with json data

# File lib/shopping/CartResponseBuilder.rb, line 95
def buildArrayResponse(json)
  cartsJSONObj = getServiceJSONObject("carts", json);
  cartList = Array.new
  if cartsJSONObj.fetch("cart").instance_of?(Array)
    cartJSONArray = cartsJSONObj.fetch("cart")
    cartJSONArray.length.times do |i|
      cartJSONObj = cartJSONArray[i]
      cart = buildCartObject(cartJSONObj);
      cart.strResponse=json
      cart.isResponseSuccess = isResponseSuccess(json)
      cartList.push(cart)
    end
  else
    cartJSONObj = cartsJSONObj.fetch("cart");
    cart = buildCartObject(cartJSONObj);
    cart.strResponse=json
    cart.isResponseSuccess = isResponseSuccess(json)
    cartList.push(cart)
  end
  return cartList
end
buildCartObject(cartJSONObj) click to toggle source

Converts the Cart JSON object to the value object i.e Cart

@param cartJSONObj

- cart data as JSONObject

@return Cart object filled with json data

# File lib/shopping/CartResponseBuilder.rb, line 47
def buildCartObject(cartJSONObj)
  cart = Cart.new();

  itemList = Array.new()
  cart.itemList = itemList

  buildObjectFromJSONTree(cart, cartJSONObj);

  if cartJSONObj.key?("items") && cartJSONObj.fetch("items").key?("item")

    if cartJSONObj.fetch("items").fetch("item").instance_of?(Hash)
      #Single Item
      itemJSONObj = cartJSONObj.fetch("items").fetch("item")
      item = App42::Shopping::Item.new(cart)

      buildObjectFromJSONTree(item, itemJSONObj);
    else
      # Multiple Items
      itemJSONArray = cartJSONObj.fetch("items").fetch("item");
      itemJSONArray.length.times do |i|
        itemJSONObj = itemJSONArray[i]
        item = App42::Shopping::Item.new(cart)
        buildObjectFromJSONTree(item, itemJSONObj);
      end
    end
  end

  if cartJSONObj.key?("payments") && cartJSONObj.fetch("payments").key?("payment")
    # Fetch Payment
    paymentJSONObj = cartJSONObj.fetch("payments").fetch("payment");
    puts paymentJSONObj
    payment = App42::Shopping::Payment.new(cart)
    buildObjectFromJSONTree(payment, paymentJSONObj);
  end
  return cart;
end
buildResponse(json) click to toggle source

Converts the response in JSON format to the value object i.e Cart

@param json

- response in JSON format

@return Cart object filled with json data

# File lib/shopping/CartResponseBuilder.rb, line 28
def buildResponse(json)
  cartsJSONObj = getServiceJSONObject("carts", json)
  cartJSONObj = cartsJSONObj.fetch("cart")
  cart = buildCartObject(cartJSONObj);
  cart.strResponse=json
  cart.isResponseSuccess = isResponseSuccess(json)
  return cart
end