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.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/lightspeed/request.rb', line 26 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
11 12 13 |
# File 'lib/lightspeed/request.rb', line 11 def verbose=(value) @verbose = value end |
Instance Attribute Details
#bucket_level ⇒ Object
Returns the value of attribute bucket_level.
6 7 8 |
# File 'lib/lightspeed/request.rb', line 6 def bucket_level @bucket_level end |
#bucket_max ⇒ Object
Returns the value of attribute bucket_max.
6 7 8 |
# File 'lib/lightspeed/request.rb', line 6 def bucket_max @bucket_max end |
#raw_request ⇒ Object
Returns the value of attribute raw_request.
6 7 8 |
# File 'lib/lightspeed/request.rb', line 6 def raw_request @raw_request end |
Class Method Details
.base_host ⇒ Object
18 19 20 |
# File 'lib/lightspeed/request.rb', line 18 def self.base_host "api.merchantos.com" end |
.base_path ⇒ Object
22 23 24 |
# File 'lib/lightspeed/request.rb', line 22 def self.base_path "/API" end |
.verbose? ⇒ Boolean
14 15 16 |
# File 'lib/lightspeed/request.rb', line 14 def self.verbose? !! @verbose end |
Instance Method Details
#perform ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/lightspeed/request.rb', line 55 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
45 46 47 48 49 50 51 52 53 |
# File 'lib/lightspeed/request.rb', line 45 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
41 42 43 |
# File 'lib/lightspeed/request.rb', line 41 def @raw_request["Authorization"] = "Bearer #{@client.oauth_token}" if @client.oauth_token end |