Class: VitableConnect::Auth::Client
- Inherits:
-
Object
- Object
- VitableConnect::Auth::Client
- Defined in:
- lib/VitableConnect/auth/client.rb
Instance Method Summary collapse
- #initialize(client:) ⇒ void constructor
-
#issue_access_token(request_options: {}, **params) ⇒ VitableConnect::Types::AccessTokenResponse
Issues a short-lived access token from the authenticated API key.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/VitableConnect/auth/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#issue_access_token(request_options: {}, **params) ⇒ VitableConnect::Types::AccessTokenResponse
Issues a short-lived access token from the authenticated API key. Access tokens can optionally be bound to a specific employer or employee for scoped access. Tokens expire after 15 minutes.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/VitableConnect/auth/client.rb', line 28 def issue_access_token(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "v1/auth/access-tokens", body: VitableConnect::Auth::Types::IssueAccessTokenRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) VitableConnect::Types::AccessTokenResponse.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |