class Facebook::Messenger::Bot::ErrorParser
Parses and raises Facebook
response errors for the send API.
Constants
- ACCESS_TOKEN_ERROR_CODES
- ACCOUNT_LINKING_ERROR_CODES
- BAD_PARAMETER_ERROR_CODES
- INTERNAL_ERROR_CODES
- LIMIT_ERROR_CODES
- PERMISSION_ERROR_CODES
Public Class Methods
raise_errors_from(response)
click to toggle source
Raise any errors in the given response.
response - A HTTParty::Response object.
Returns nil if no errors were found, otherwises raises appropriately
# File lib/facebook/messenger/bot/error_parser.rb, line 40 def raise_errors_from(response) return unless response.key? 'error' error = response['error'] error_code = error['code'] error_subcode = error['error_subcode'] raise_code_only_error(error_code, error) if error_subcode.nil? raise_code_subcode_error(error_code, error_subcode, error) # Default to unidentified error raise FacebookError, error end
Private Class Methods
access_token_error?(error_code)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 79 def access_token_error?(error_code) ACCESS_TOKEN_ERROR_CODES.key? error_code end
account_linking_error?(error_code)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 83 def account_linking_error?(error_code) ACCOUNT_LINKING_ERROR_CODES.key? error_code end
bad_parameter_error?(error_code, error_subcode)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 94 def bad_parameter_error?(error_code, error_subcode) bad_parameter_errors = BAD_PARAMETER_ERROR_CODES[error_code] return unless bad_parameter_errors bad_parameter_errors.include? error_subcode end
internal_error?(error_code)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 75 def internal_error?(error_code) INTERNAL_ERROR_CODES.key? error_code end
limit_error?(error_code, error_subcode)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 87 def limit_error?(error_code, error_subcode) limit_errors = LIMIT_ERROR_CODES[error_code] return unless limit_errors limit_errors.include? error_subcode end
permission_error?(error_code, error_subcode)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 101 def permission_error?(error_code, error_subcode) permission_errors = PERMISSION_ERROR_CODES[error_code] return unless permission_errors permission_errors.include? error_subcode end
raise_code_only_error(error_code, args)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 58 def raise_code_only_error(error_code, args) raise InternalError, args if internal_error?(error_code) raise AccessTokenError, args if access_token_error?(error_code) raise AccountLinkingError, args if account_linking_error?( error_code ) end
raise_code_subcode_error(error_code, error_subcode, args)
click to toggle source
# File lib/facebook/messenger/bot/error_parser.rb, line 66 def raise_code_subcode_error(error_code, error_subcode, args) raise LimitError, args if limit_error?(error_code, error_subcode) raise BadParameterError, args if bad_parameter_error?(error_code, error_subcode) raise PermissionError, args if permission_error?(error_code, error_subcode) end