class App42::Recommend::RecommenderResponseBuilder

RecommenderResponseBuilder class converts the JSON response retrieved from the server to the value object i.e Recommender

Public Instance Methods

buildResponse(json) click to toggle source

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

@param json

- response in JSON format

@return Recommender object filled with json data

# File lib/recommend/RecommenderResponseBuilder.rb, line 30
def buildResponse(json)
  puts "testing #{json}"
  recommenderObj = Recommender.new
  recommendedItemList = Array.new()
  recommenderObj.recommendedItemList=recommendedItemList
  recommenderObj.strResponse=json

  jsonObj = JSON.parse(json)

  jsonObjApp42 = jsonObj["app42"]
  jsonObjResponse = jsonObjApp42["response"]
  recommenderObj.isResponseSuccess=(jsonObjResponse.fetch("success"));
  jsonObjRecommender = jsonObjResponse["recommender"]
  buildObjectFromJSONTree(recommenderObj, jsonObjRecommender);

  if jsonObjRecommender.key?("recommended") == false
    return recommenderObj
  end

  if jsonObjRecommender.fetch("recommended").instance_of?(Hash)
    # Only One attribute is there
    jsonObjRecommended = jsonObjRecommender.fetch("recommended");
    recomItem = App42::Recommend::RecommendedItem.new(recommenderObj)
    buildObjectFromJSONTree(recomItem, jsonObjRecommended);
  else

    jsonObjRecommenderArray = jsonObjRecommender.fetch("recommended");

    jsonObjRecommenderArray.length.times do |i|
      # Get Individual Attribute Node and set it into Object
      jsonObjRecommended = jsonObjRecommenderArray[i]
      recomItem = App42::Recommend::RecommendedItem.new(recommenderObj)
      buildObjectFromJSONTree(recomItem, jsonObjRecommended);
    end
  end
  return recommenderObj
end