Class: Nucleo::Requests::SiteFeed

Inherits:
Object
  • Object
show all
Defined in:
lib/nucleo/requests/site_feed.rb

Class Method Summary collapse

Class Method Details

.retrieve(id, params = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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