Class: TatusTask1Gem1::AthletesAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/tatus_task1_gem1/athletes_api.rb

Constant Summary collapse

BASE_URL =
"https://athletedataservice.azurewebsites.net"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(token:, adapter: Faraday.default_adapter) ⇒ AthletesAPI

Returns a new instance of AthletesAPI.

Raises:

  • (StandardError)


12
13
14
15
16
# File 'lib/tatus_task1_gem1/athletes_api.rb', line 12

def initialize(token:, adapter: Faraday.default_adapter)
    raise StandardError.new('empty token, exiting!') if !is_valid(token)
    @token = token
    @adapter = adapter
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



6
7
8
# File 'lib/tatus_task1_gem1/athletes_api.rb', line 6

def adapter
  @adapter
end

#tokenObject (readonly)

Returns the value of attribute token.



6
7
8
# File 'lib/tatus_task1_gem1/athletes_api.rb', line 6

def token
  @token
end

Instance Method Details

#athletesObject



30
31
32
# File 'lib/tatus_task1_gem1/athletes_api.rb', line 30

def athletes
    connection.get('summary').body
end

#connectionObject



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/tatus_task1_gem1/athletes_api.rb', line 18

def connection
    @connection ||= Faraday.new(
        url: BASE_URL,
        headers: {'Content-Type' => 'application/x-www-form-urlencoded'}
      ) do |conn|
        conn.response :json
        conn.request :url_encoded
        conn.request :authorization, 'Bearer', @token
        conn.adapter adapter
      end 
end

#inspectObject



34
35
36
# File 'lib/tatus_task1_gem1/athletes_api.rb', line 34

def inspect
    "#<TatusTask1Gem1::AthletesAPI>"
end

#is_valid(token) ⇒ Object



8
9
10
# File 'lib/tatus_task1_gem1/athletes_api.rb', line 8

def is_valid(token)
    return !token.empty?
end