Class: CanvasLmsApi::Client

Inherits:
Object
  • Object
show all
Includes:
RequestMethods
Defined in:
lib/canvas_lms_api/client.rb

Instance Method Summary collapse

Methods included from RequestMethods

#get, #post, #put

Constructor Details

#initialize(prefix, api_key) ⇒ Client

Returns a new instance of Client.



16
17
18
19
# File 'lib/canvas_lms_api/client.rb', line 16

def initialize(prefix, api_key)
  @prefix = prefix
  @api_key = api_key
end

Instance Method Details

#request(endpoint, params = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/canvas_lms_api/client.rb', line 21

def request(endpoint, params = {})
  uri = uri_for(endpoint, params[:query])
  loop do
    response = CanvasLmsApi::Request.new(
      uri,
      @api_key,
      params[:method],
      params[:payload]
    ).call
    results.collect(response.body)
    next_page_uri = response.next_page

    break unless next_page_uri
    uri = uri_for(next_page_uri)
  end

  results.coalesce_results
end