Class: CanvasLmsApi::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/canvas_lms_api/response.rb

Constant Summary collapse

%r{^<https?://.*/api/v1/([^>]+)[^"]+"([^"]+)}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rest_response, request) ⇒ Response

Returns a new instance of Response.



9
10
11
12
# File 'lib/canvas_lms_api/response.rb', line 9

def initialize(rest_response, request)
  @rest_response = rest_response
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



7
8
9
# File 'lib/canvas_lms_api/response.rb', line 7

def request
  @request
end

#rest_responseObject (readonly)

Returns the value of attribute rest_response.



7
8
9
# File 'lib/canvas_lms_api/response.rb', line 7

def rest_response
  @rest_response
end

Instance Method Details

#bodyObject



14
15
16
# File 'lib/canvas_lms_api/response.rb', line 14

def body
  @body ||= JSON.parse(rest_response.body)
end

#next_pageObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/canvas_lms_api/response.rb', line 18

def next_page
  @next_page ||= begin
    return nil unless rest_response.headers[:link]

    rest_response.headers[:link].split(",").each do |link|
      link.match(LINK_PATTERN) do |match|
        url = match[1]
        rel = match[2]
        return url if rel == "next"
      end
    end

    # No "next" link found
    nil
  end
end