Class: RDStation::Authentication
- Inherits:
-
Object
- Object
- RDStation::Authentication
- 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
-
#auth_url(redirect_url) ⇒ Object
param redirect_url URL that the user will be redirected after confirming application authorization.
-
#authenticate(code) ⇒ Object
Public: Get the credentials from RD Station API.
-
#initialize(client_id, client_secret) ⇒ Authentication
constructor
A new instance of Authentication.
-
#update_access_token(refresh_token) ⇒ Object
param refresh_token parameter sent by RDStation after authenticate.
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
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 |