Class: Ebay::Oauth::ClientCredentialsGrant

Inherits:
Object
  • Object
show all
Includes:
Sandboxable
Defined in:
lib/ebay/oauth/client_credentials_grant.rb

Overview

Mints an access token to use in API requests

Constant Summary collapse

SANDBOX_ENDPOINT =
'https://api.sandbox.ebay.com/identity/v1/oauth2/token'
PRODUCTION_ENDPOINT =
'https://api.ebay.com/identity/v1/oauth2/token'

Instance Attribute Summary collapse

Attributes included from Sandboxable

#sandbox?

Instance Method Summary collapse

Methods included from Sandboxable

#sandbox

Constructor Details

#initialize(app_id: Config.app_id, cert_id: Config.cert_id) ⇒ ClientCredentialsGrant



27
28
29
30
# File 'lib/ebay/oauth/client_credentials_grant.rb', line 27

def initialize(app_id: Config.app_id, cert_id: Config.cert_id)
  @app_id = app_id
  @cert_id = cert_id
end

Instance Attribute Details

#app_idString (readonly)



20
21
22
# File 'lib/ebay/oauth/client_credentials_grant.rb', line 20

def app_id
  @app_id
end

#cert_idString (readonly)



23
24
25
# File 'lib/ebay/oauth/client_credentials_grant.rb', line 23

def cert_id
  @cert_id
end

Instance Method Details

#mint_access_tokenString

Mints a new access token



35
36
37
# File 'lib/ebay/oauth/client_credentials_grant.rb', line 35

def mint_access_token
  JSON.parse(request).fetch('access_token')
end

#requestHTTP::Response

Requests a client credentials grant



42
43
44
45
# File 'lib/ebay/oauth/client_credentials_grant.rb', line 42

def request
  HTTP.basic_auth(user: app_id, pass: cert_id)
      .post(url, form: payload)
end