Class: Atrium::Institution

Inherits:
Object
  • Object
show all
Extended by:
Paginate
Includes:
ActiveAttr::Model
Defined in:
lib/atrium/institution.rb

Constant Summary

Constants included from Paginate

Paginate::DEFAULT_RECORDS_PER_PAGE, Paginate::INITIAL_PAGE

Instance Attribute Summary

Attributes included from Paginate

#current_page, #endpoint, #total_pages

Class Method Summary collapse

Methods included from Paginate

endpoint_name, get_total_pages, klass_name, paginate_endpoint, paginate_endpoint_in_batches, records_per_page, response_list, response_list_in_batches

Class Method Details

.credentials(institution_code) ⇒ Object

TODO:

Normalize params interface across gem, most of gem favors hash



13
14
15
16
17
18
19
20
# File 'lib/atrium/institution.rb', line 13

def self.credentials(institution_code)
  endpoint = "/institutions/#{institution_code}/credentials"
  response = ::Atrium.client.make_request(:get, endpoint)

  response["credentials"].map do |credential|
    ::Atrium::Credential.new(credential)
  end
end

.list(query_params: nil, limit: nil) ⇒ Object



30
31
32
# File 'lib/atrium/institution.rb', line 30

def self.list(query_params: nil, limit: nil)
  paginate_endpoint(:query_params => query_params, :limit => limit)
end

.list_in_batches(query_params: nil, limit: nil, &block) ⇒ Object



34
35
36
# File 'lib/atrium/institution.rb', line 34

def self.list_in_batches(query_params: nil, limit: nil, &block)
  paginate_endpoint_in_batches(:query_params => query_params, :limit => limit, &block)
end

.read(institution_code:) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/atrium/institution.rb', line 22

def self.read(institution_code:)
  endpoint = "/institutions/#{institution_code}"
  response = ::Atrium.client.make_request(:get, endpoint)

  institution_params = response["institution"]
  ::Atrium::Institution.new(institution_params)
end