Class: RDStation::Authentication

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/rdstation/authentication.rb

Constant Summary collapse

AUTH_TOKEN_URL =
'https://api.rd.services/auth/token'.freeze
DEFAULT_HEADERS =
{ 'Content-Type' => 'application/json' }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(client_id, client_secret) ⇒ Authentication

Returns a new instance of Authentication.



9
10
11
12
# File 'lib/rdstation/authentication.rb', line 9

def initialize(client_id, client_secret)
  @client_id = client_id
  @client_secret = client_secret
end

Instance Method Details

#auth_url(redirect_url) ⇒ Object

param redirect_url

URL that the user will be redirected
after confirming application authorization


19
20
21
# File 'lib/rdstation/authentication.rb', line 19

def auth_url(redirect_url)
  "https://api.rd.services/auth/dialog?client_id=#{@client_id}&redirect_url=#{redirect_url}"
end

#authenticate(code) ⇒ Object

Public: Get the credentials from RD Station API

code - The code String sent by RDStation after the user confirms authorization.

Examples

authenticate("123")
# => { 'access_token' => '54321', 'expires_in' => 86_400, 'refresh_token' => 'refresh' }

Returns the credentials Hash. Raises RDStation::Error::ExpiredCodeGrant if the code has expired Raises RDStation::Error::InvalidCredentials if the client_id, client_secret or code is invalid.



36
37
38
39
# File 'lib/rdstation/authentication.rb', line 36

def authenticate(code)
  response = post_to_auth_endpoint(code: code)
  ApiResponse.build(response)
end

#update_access_token(refresh_token) ⇒ Object

param refresh_token

parameter sent by RDStation after authenticate


45
46
47
48
# File 'lib/rdstation/authentication.rb', line 45

def update_access_token(refresh_token)
  response = post_to_auth_endpoint(refresh_token: refresh_token)
  ApiResponse.build(response)
end