Class: Valvat::HMRC::AccessToken
- Inherits:
-
Object
- Object
- Valvat::HMRC::AccessToken
- Defined in:
- lib/valvat/hmrc/access_token.rb
Constant Summary collapse
- Error =
Class.new(StandardError)
- PRODUCTION_ENDPOINT_URL =
'https://api.service.hmrc.gov.uk/oauth/token'- SANDBOX_ENDPOINT_URL =
'https://test-api.service.hmrc.gov.uk/oauth/token'- SCOPE =
'read:vat'- GRANT_TYPE =
'client_credentials'
Class Method Summary collapse
Instance Method Summary collapse
- #fetch(uri = @endpoint_uri, request_count = 0) ⇒ Object
-
#initialize(options = {}) ⇒ AccessToken
constructor
A new instance of AccessToken.
Constructor Details
#initialize(options = {}) ⇒ AccessToken
Returns a new instance of AccessToken.
16 17 18 19 20 21 22 23 |
# File 'lib/valvat/hmrc/access_token.rb', line 16 def initialize( = {}) = [:uk].is_a?(Hash) ? [:uk] : {} @client_id = [:client_id].to_s @client_secret = [:client_secret].to_s @rate_limit = [:rate_limit] @endpoint_uri = URI([:sandbox] ? SANDBOX_ENDPOINT_URL : PRODUCTION_ENDPOINT_URL) end |
Class Method Details
.fetch(options = {}) ⇒ Object
25 26 27 |
# File 'lib/valvat/hmrc/access_token.rb', line 25 def self.fetch( = {}) new().fetch end |
Instance Method Details
#fetch(uri = @endpoint_uri, request_count = 0) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/valvat/hmrc/access_token.rb', line 29 def fetch(uri = @endpoint_uri, request_count = 0) raise_if_invalid! request = build_request(uri) response = build_https.request(request) handle_response!(response, request_count) rescue Errno::ECONNRESET, IOError raise if request_count > @rate_limit fetch(uri, request_count + 1) end |