Class: Imgur::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/imgur/session.rb

Constant Summary collapse

HOST =
'https://api.imgur.com'

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Session

Creates the session instance that handles all the API calls to Imgur access_token is optional

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
15
# File 'lib/imgur/session.rb', line 7

def initialize(options)
  required_arguments = %i(client_id client_secret refresh_token)
  raise ArgumentError if required_arguments & options.keys != required_arguments

  @client_id = options[:client_id]
  @client_secret = options[:client_secret]
  @access_token = options[:access_token]
  @refresh_token = options[:refresh_token]
end

Instance Method Details

#access_token=(access_token) ⇒ Object



23
24
25
26
27
28
# File 'lib/imgur/session.rb', line 23

def access_token=(access_token)
  @access_token = access_token

  # Forces to create a new connection with new header
  @connection = nil
end

#connectionObject



38
39
40
41
42
43
# File 'lib/imgur/session.rb', line 38

def connection
  @connection ||= Faraday.new(
    HOST,
    headers: {'Authorization' => 'Bearer ' << @access_token}
  )
end

#paramsObject



30
31
32
33
34
35
36
# File 'lib/imgur/session.rb', line 30

def params
  {
    refresh_token: @refresh_token,
    client_id:     @client_id,
    client_secret: @client_secret
  }
end