class App42::Shopping::CatalogueResponseBuilder
CatalogueResponseBuilder
class converts the JSON response retrieved from the server to the value object i.e Catalogue
Public Instance Methods
buildArrayResponse(json)
click to toggle source
Converts the response in JSON format to the list of value objects i.e Catalogue
@param response
- response in JSON format
@return List of Catalogue
object filled with json data
# File lib/shopping/CatalogueResponseBuilder.rb, line 53 def buildArrayResponse(json) cataloguesJSONObject = getServiceJSONObject("catalogues", json); catalogueList = Array.new if cataloguesJSONObject["catalogue"].instance_of?(Array) catalogueJSONArray = cataloguesJSONObject.fetch("catalogue"); catalogueJSONArray.length.times do |i| catalogueJSONObj = catalogueJSONArray[i] # catalogue = Catalogue.new catalogue = buildCatalogueObject(catalogueJSONObj); catalogue.strResponse=json catalogue.isResponseSuccess = isResponseSuccess(json) catalogueList.push(catalogue) end else catalogueJSONObj = cataloguesJSONObject["catalogue"] catalogue = buildCatalogueObject(catalogueJSONObj); catalogue.strResponse=json catalogue.isResponseSuccess = isResponseSuccess(json) catalogueList.push(catalogue) end return catalogueList end
buildCatalogueObject(catalogueJSONObj)
click to toggle source
Converts the User
JSON object to the value object i.e Catalogue
@param catalogueJSONObj
- Catalogue data as JSONObject
@return Catalogue
object filled with json data
# File lib/shopping/CatalogueResponseBuilder.rb, line 86 def buildCatalogueObject(catalogueJSONObj) catalogue = Catalogue.new(); categoryList = Array.new catalogue.categoryList = categoryList buildObjectFromJSONTree(catalogue, catalogueJSONObj); if catalogueJSONObj.key?("categories") && catalogueJSONObj.fetch("categories").key?("category") #Fetch Category if catalogueJSONObj.fetch("categories").fetch("category").instance_of?(Hash) #Single Category categoryJSONObj = catalogueJSONObj.fetch("categories").fetch("category"); catalogueCategory = App42::Shopping::Category.new(catalogue) itemList = Array.new catalogueCategory.itemList=(itemList) buildObjectFromJSONTree(catalogueCategory, categoryJSONObj); #Check for Items Now if(categoryJSONObj.key?("items") && categoryJSONObj.fetch("items").key?("item")) if categoryJSONObj.fetch("items").fetch("item").instance_of?(Hash) #Single Item itemJSONObj = categoryJSONObj.fetch("items").fetch("item"); item = App42::Shopping::Item.new(catalogueCategory) buildObjectFromJSONTree(item, itemJSONObj); else # Multiple Items categoryJSONArray = categoryJSONObj.fetch("items").fetch("item"); categoryJSONArray.length.times do |j| itemJSONObj = categoryJSONArray[j] item = App42::Shopping::Item.new(catalogueCategory) buildObjectFromJSONTree(item, itemJSONObj); end end end else #Multiple Categories itemJSONArray = catalogueJSONObj.fetch("categories").fetch("category"); itemJSONArray.length.times do |j| categoryJSONObj = itemJSONArray(j) catalogueCategory = App42::Shopping::Category.new(catalogue) buildObjectFromJSONTree(catalogueCategory, categoryJSONObj); # Check for Items Now if categoryJSONObj.key?("items") && categoryJSONObj.fetch("items").key?("item") if categoryJSONObj.fetch("items").fetch("item").instance_of?(Hash) #Single Item itemJSONObj = categoryJSONObj.fetch("items").fetch("item"); item = App42::Shopping::Item.new(catalogueCategory) itemList = Array.new catalogueCategory.itemList=(itemList) buildObjectFromJSONTree(item, itemJSONObj); else #Multiple Items categoryJSONArray = categoryJSONObj.fetch("items").fetch("item"); categoryJSONArray.length.times do |j| itemJSONObj = categoryJSONArray(j) item = App42::Shopping::Item.new(catalogueCategory) buildObjectFromJSONTree(item, itemJSONObj); end end end end end end return catalogue; end
buildResponse(json)
click to toggle source
Converts the response in JSON format to the value object i.e Catalogue
@param json
- response in JSON format
@return Catalogue
object filled with json data
# File lib/shopping/CatalogueResponseBuilder.rb, line 29 def buildResponse(json) puts "testing #{json}" cataloguesJSONObject = getServiceJSONObject("catalogues", json); catalogueJSONObject = cataloguesJSONObject.fetch("catalogue") catalogue = buildCatalogueObject(catalogueJSONObject); catalogue.strResponse=json catalogue.isResponseSuccess = isResponseSuccess(json) return catalogue end