class Bobot::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, extras = {})
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/bobot/error_parser.rb, line 38 def raise_errors_from(response, extras = {}) return false if response.nil? || !response.key?('error') error = response['error'] error_code = error['code'] error_subcode = error['error_subcode'] error['extras'] = extras 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.new(error) end
Private Class Methods
access_token_error?(error_code)
click to toggle source
# File lib/bobot/error_parser.rb, line 74 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/bobot/error_parser.rb, line 78 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/bobot/error_parser.rb, line 89 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/bobot/error_parser.rb, line 70 def internal_error?(error_code) INTERNAL_ERROR_CODES.key?(error_code) end
limit_error?(error_code, error_subcode)
click to toggle source
# File lib/bobot/error_parser.rb, line 82 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/bobot/error_parser.rb, line 96 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/bobot/error_parser.rb, line 58 def raise_code_only_error(error_code, args) raise InternalError.new(args) if internal_error?(error_code) raise AccessTokenError.new(args) if access_token_error?(error_code) raise AccountLinkingError.new(args) if account_linking_error?(error_code) end
raise_code_subcode_error(error_code, error_subcode, args)
click to toggle source
# File lib/bobot/error_parser.rb, line 64 def raise_code_subcode_error(error_code, error_subcode, args) raise LimitError.new(args) if limit_error?(error_code, error_subcode) raise BadParameterError.new(args) if bad_parameter_error?(error_code, error_subcode) raise PermissionError.new(args) if permission_error?(error_code, error_subcode) end