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
# File 'lib/school21/client.rb', line 31

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

#participants_apiObject



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

def participants_api
  initialize_auth! if @access_token.expired?

  ParticipantsApi.new(@config)
end

#projects_apiObject



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

def projects_api
  initialize_auth! if @access_token.expired?

  ProjectsApi.new(@config)
end