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