Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/intercom/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ def set_rate_limit_details(response)
rate_limit_details = {}
rate_limit_details[:limit] = response['X-RateLimit-Limit'].to_i if response['X-RateLimit-Limit']
rate_limit_details[:remaining] = response['X-RateLimit-Remaining'].to_i if response['X-RateLimit-Remaining']
rate_limit_details[:reset_at] = Time.parse(response['X-RateLimit-Reset']) if response['X-RateLimit-Reset']
rate_limit_details[:reset_at] = Time.at(response['X-RateLimit-Reset'].to_i) if response['X-RateLimit-Reset']
@rate_limit_details = rate_limit_details
end

Expand Down
8 changes: 4 additions & 4 deletions spec/unit/intercom/request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
it 'should call sleep for rate limit error three times' do
# Use webmock to mock the HTTP request
stub_request(:any, uri).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => Time.now.utc + 10 })
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s })
req = Intercom::Request.get(uri, "")
req.handle_rate_limit=true
req.expects(:sleep).times(3).with(any_parameters)
Expand All @@ -53,7 +53,7 @@
it 'should call sleep for rate limit error just once' do
# Use webmock to mock the HTTP request
stub_request(:any, uri).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => Time.now.utc + 10 }).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s }).\
then.to_return(status: [200, "OK"])
req = Intercom::Request.get(uri, "")
req.handle_rate_limit=true
Expand All @@ -64,7 +64,7 @@
it 'should not sleep if rate limit reset time has passed' do
# Use webmock to mock the HTTP request
stub_request(:any, uri).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => Time.parse("February 25 2010").utc }).\
to_return(status: [429, "Too Many Requests"], headers: { 'X-RateLimit-Reset' => Time.parse("February 25 2010").utc.to_i.to_s }).\
then.to_return(status: [200, "OK"])
req = Intercom::Request.get(uri, "")
req.handle_rate_limit=true
Expand All @@ -80,7 +80,7 @@
it 'should raise ResourceNotUniqueError error on resource_conflict code' do
# Use webmock to mock the HTTP request
stub_request(:put, uri).\
to_return(status: [409, "Resource Already Exists"], headers: { 'X-RateLimit-Reset' => Time.now.utc + 10 }, body: {type: "error.list", errors: [ code: "resource_conflict" ]}.to_json)
to_return(status: [409, "Resource Already Exists"], headers: { 'X-RateLimit-Reset' => (Time.now.utc + 10).to_i.to_s }, body: {type: "error.list", errors: [ code: "resource_conflict" ]}.to_json)
req = Intercom::Request.put(uri, "")
expect { req.execute(target_base_url=uri, username: "ted", secret: "") }.must_raise(Intercom::ResourceNotUniqueError)
end
Expand Down