Class: School21::Client

Inherits:
Object
  • Object
show all
Includes:
CoreLibrary
Defined in:
lib/school21/client.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|@config| ... } ⇒ Client

Returns a new instance of Client.

Yields:

  • (@config)


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/school21/client.rb', line 11

def initialize(&block)
  raise 'A block must be given' unless block_given?
  raise 'You must provide block argument that represents config instance' if block.arity != 1

  @config = GlobalConfig
            .new
            .base_uri_executor(BaseApi.method(:base_uri))

  yield(@config)

  validate_credentials!

  initialize_logging

  http_client = FaradayClient.new(@config.client_configuration)
  @config.client_configuration.set_http_client(http_client)

  initialize_auth!
end

Class Method Details

.configureObject



7
8
9
# File 'lib/school21/client.rb', line 7

def self.configure(&)
  new(&)
end

Instance Method Details

#auth_apiObject



31
32
33
# File 'lib/school21/client.rb', line 31

def auth_api
  @auth_api ||= AuthApi.new(@config)
end

#campuses_apiObject



45
46
47
48
# File 'lib/school21/client.rb', line 45

def campuses_api
  initialize_auth! if @access_token.expired?
  CampusesApi.new(@config)
end

#clusters_apiObject



50
51
52
53
# File 'lib/school21/client.rb', line 50

def clusters_api
  initialize_auth! if @access_token.expired?
  ClustersApi.new(@config)
end

#participants_apiObject



35
36
37
38
# File 'lib/school21/client.rb', line 35

def participants_api
  initialize_auth! if @access_token.expired?
  ParticipantsApi.new(@config)
end

#projects_apiObject



40
41
42
43
# File 'lib/school21/client.rb', line 40

def projects_api
  initialize_auth! if @access_token.expired?
  ProjectsApi.new(@config)
end