Skip to content

Injects rate_limit_details on RateLimitExceeded exception - #624

Open
diaclavijo wants to merge 1 commit into
intercom:masterfrom
diaclavijo:inject-rate-limit-details-on-exception-attrs
Open

Injects rate_limit_details on RateLimitExceeded exception#624
diaclavijo wants to merge 1 commit into
intercom:masterfrom
diaclavijo:inject-rate-limit-details-on-exception-attrs

Conversation

@diaclavijo

Copy link
Copy Markdown

Why?

This would allow a user of the API to rescue for example in an ApplicationJob and retry when the time has passed, rather than sleeping.

def perform
  req.execute(uri, token: 'test-token')
rescue Intercom::RateLimitExceeded => e
  self.class.perform_at(e.rate_limit_details[:reset_at])
end

How?

  • Adds attr_accessor to RateLimitExceeded on errors.rb
  • Intercom::Request#execute rescue block injects the @rate_limit_details before raising the exception
- Why?
This would allow a user of the API to rescue for example in an ApplicationJob and retry when the time has passed, rather than sleeping.

```
def perform
  req.execute(uri, token: 'test-token')
rescue Intercom::RateLimitExceeded => e
  self.class.perform_at(e.rate_limit_details[:reset_at])
end
```

- How?

* Adds attr_accessor to RateLimitExceeded on errors.rb
* Intercom::Request#execute rescue block injects the  @rate_limit_details before raising the exception
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant