Module: Asana::Errors
- Included in:
- HttpClient::ErrorHandling
- Defined in:
- lib/asana/errors.rb
Overview
Defines the different errors that the Asana API may throw, which the client code may want to catch.
Constant Summary collapse
- APIError =
Note:
This exception should never be raised when there exists a more specific subclass.
A generic, catch-all API error. It contains the whole response object for debugging purposes.
Class.new(StandardError) do attr_accessor :response def to_s 'An unknown API error ocurred.' end end
- NotAuthorized =
A 401 error. Raised when the credentials used are invalid and the user could not be authenticated.
Class.new(APIError) do def to_s 'A valid API key was not provided with the request, so the API could '\ 'not associate a user with the request.' end end
- Forbidden =
A 403 error. Raised when the user doesn’t have permission to access the requested resource or to perform the requested action on it.
Class.new(APIError) do def to_s 'The API key and request syntax was valid but the server is refusing '\ 'to complete the request. This can happen if you try to read or write '\ 'to objects or properties that the user does not have access to.' end end
- NotFound =
A 404 error. Raised when the requested resource doesn’t exist.
Class.new(APIError) do def to_s 'Either the request method and path supplied do not specify a known '\ 'action in the API, or the object specified by the request does not '\ 'exist.' end end
- ServerError =
A 500 error. Raised when there is a problem in the Asana API server. It contains a unique phrase that can be used to identify the problem when contacting developer support.
Class.new(APIError) do attr_accessor :phrase def initialize(phrase) @phrase = phrase end def to_s "There has been an error on Asana's end. Use this unique phrase to "\ 'identify the problem when contacting developer support: ' + %("#{@phrase}") end end
- InvalidRequest =
A 400 error. Raised when the request was malformed or missing some parameters. It contains a list of errors indicating the specific problems.
Class.new(APIError) do attr_accessor :errors def initialize(errors) @errors = errors end def to_s errors.join(', ') end end
- RateLimitEnforced =
A 429 error. Raised when the Asana API enforces rate-limiting on the client to avoid overload. It contains the number of seconds to wait before retrying the operation.
Class.new(APIError) do attr_accessor :retry_after_seconds def initialize(retry_after_seconds) @retry_after_seconds = retry_after_seconds end def to_s "Retry your request after #{@retry_after_seconds} seconds." end end