class Nucleo::Requests::SiteFeed

Public Class Methods

retrieve(id, params={}) click to toggle source
# File lib/nucleo/requests/site_feed.rb, line 4
def self.retrieve(id, params={})
  included_models = params.fetch(:includes, [])
  includes        = "[%s]" % [included_models.join(';')]

  route = Nucleo::Client.routes.route_for('site')
  url   = route.url_for(id: id, includes: includes)

  request = Nucleo::Client.get(url)

  request.on(:success) do |resp|
    response_body = resp.body

    if response_body.has_key?('pages') && response_body['pages'].kind_of?(Array)
      response_body.merge!({ 'pages' => {} })
    end

    return response_body
  end

  request.on(:failure) do |resp|
    Nucleo::Client.configuration.logger.error do
      "App Error: %s" % [resp.body]
    end

    return nil
  end

  request.on(:server_error) do |resp|
    Nucleo::Client.configuration.logger.error do
      "Server Error: %s" % [resp.body]
    end

    return nil
  end
end