Class: Lightspeed::Request
- Inherits:
-
Object
- Object
- Lightspeed::Request
- Defined in:
- lib/lightspeed/request.rb
Constant Summary collapse
- SECONDS_TO_WAIT_WHEN_THROTTLED =
API requirements.
60
Class Attribute Summary collapse
-
.verbose ⇒ Object
writeonly
Sets the attribute verbose.
Instance Attribute Summary collapse
-
#bucket_level ⇒ Object
Returns the value of attribute bucket_level.
-
#bucket_max ⇒ Object
Returns the value of attribute bucket_max.
-
#raw_request ⇒ Object
Returns the value of attribute raw_request.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(client, method:, path:, params: nil, body: nil) ⇒ Request
constructor
A new instance of Request.
- #perform ⇒ Object
- #perform_raw ⇒ Object
- #set_authorization_header ⇒ Object
Constructor Details
#initialize(client, method:, path:, params: nil, body: nil) ⇒ Request
Returns a new instance of Request.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/lightspeed/request.rb', line 28 def initialize(client, method:, path:, params: nil, body: nil) @method = method @params = params @path = path @bucket_max = Float::INFINITY @bucket_level = 0 @http = Net::HTTP.new(self.class.base_host, 443) @http.use_ssl = true @raw_request = request_class.new(uri) @raw_request.body = body if body @raw_request.set_form_data(@params) if @params && @method != :get @client = client end |
Class Attribute Details
.verbose=(value) ⇒ Object (writeonly)
Sets the attribute verbose
13 14 15 |
# File 'lib/lightspeed/request.rb', line 13 def verbose=(value) @verbose = value end |
Instance Attribute Details
#bucket_level ⇒ Object
Returns the value of attribute bucket_level.
8 9 10 |
# File 'lib/lightspeed/request.rb', line 8 def bucket_level @bucket_level end |
#bucket_max ⇒ Object
Returns the value of attribute bucket_max.
8 9 10 |
# File 'lib/lightspeed/request.rb', line 8 def bucket_max @bucket_max end |
#raw_request ⇒ Object
Returns the value of attribute raw_request.
8 9 10 |
# File 'lib/lightspeed/request.rb', line 8 def raw_request @raw_request end |
Class Method Details
.base_host ⇒ Object
20 21 22 |
# File 'lib/lightspeed/request.rb', line 20 def self.base_host "api.merchantos.com" end |
.base_path ⇒ Object
24 25 26 |
# File 'lib/lightspeed/request.rb', line 24 def self.base_path "/API" end |
.verbose? ⇒ Boolean
16 17 18 |
# File 'lib/lightspeed/request.rb', line 16 def self.verbose? !! @verbose end |
Instance Method Details
#perform ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/lightspeed/request.rb', line 57 def perform perform_raw rescue Lightspeed::Error::Throttled retry_throttled_request rescue Lightspeed::Error::Unauthorized => e raise e if @attempted_oauth_token_refresh @client.refresh_oauth_token @attempted_oauth_token_refresh = true perform end |
#perform_raw ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/lightspeed/request.rb', line 47 def perform_raw response = @http.request(raw_request) extract_rate_limits(response) if response.code == "200" handle_success(response) else handle_error(response) end end |
#set_authorization_header ⇒ Object
43 44 45 |
# File 'lib/lightspeed/request.rb', line 43 def @raw_request["Authorization"] = "Bearer #{@client.oauth_token}" if @client.oauth_token end |