Class: Wallabee::API

Inherits:
Object
  • Object
show all
Defined in:
lib/wallabee/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ API

Creates a new API client instance.

Examples:

client = Wallabee::API.new :api_key => '#######'

Parameters:

  • params (Hash)

Options Hash (params):

  • :api_key (String)

    The api_key (required)

  • :base_url (String) — default: 'https://api.wallab.ee/'

    API base url

  • :faraday_adapter (Symbol) — default: 'Faraday.default_adapter'

    Faraday adapter/http client library to use.

Raises:

  • (ArgumentError)

    when no client_id is provided

  • (ArgumentError)

    when no api_key is provided

See Also:

  • [Faraday]


15
16
17
18
19
20
21
22
23
# File 'lib/wallabee/api.rb', line 15

def initialize(params)
  @api_key         = params[:api_key]
  @debug           = params[:debug]
  @base_url        = params[:base_url]        || 'http://api.wallab.ee/'
  @faraday_adapter = params[:faraday_adapter] || Faraday.default_adapter
  @faraday         = params[:faraday]         || default_faraday

  raise ArgumentError, ':api_key missing' unless @api_key
end

Instance Method Details

#achievementsObject



25
26
27
# File 'lib/wallabee/api.rb', line 25

def achievements
	Wallabee::Resource::Achievements.new(@faraday)
end

#brandedObject



29
30
31
# File 'lib/wallabee/api.rb', line 29

def branded
  Wallabee::Resource::Branded.new(@faraday)
end

#default_faradayObject



37
38
39
40
41
42
43
44
45
46
# File 'lib/wallabee/api.rb', line 37

def default_faraday
  Faraday.new(:url => @base_url) do |faraday|
    faraday.request  :url_encoded
    faraday.response :rashify
    faraday.response :json
    faraday.response(:logger) if @debug
    faraday.adapter @faraday_adapter
    faraday.headers["X-WallaBee-API-Key"] = @api_key
  end
end

#itemsObject



33
34
35
# File 'lib/wallabee/api.rb', line 33

def items
  Wallabee::Resource::Items.new(@faraday)
end