class Facebook::Middleware::ExceptionRaiser
Raise beautiful exceptions
Public Instance Methods
call(env)
click to toggle source
For handling errors, the message that gets returned is of the following format:
{:status => env, :headers => env, :body => env}
# File lib/facebook-client/middleware/exception_raiser.rb, line 19 def call(env) begin @app.call(env) rescue Faraday::Error::ClientError => e # Error codes are based upon: # http://fbdevwiki.com/wiki/Error_codes#Error_Code_Table fb_error_code = e.response[:body].try(:[], 'error').try(:[], 'code') # Translate our error code into an exception exception = case fb_error_code ## (0-99) General Errors when 2 Facebook::ServiceError when 3 Facebook::UnknownMethodError when 4, 18, 9, 17 Facebook::RequestLimitError when 10 Facebook::ApplicationPermissionError when 11 Facebook::MethodDeprecatedError when 0..99 Facebook::GeneralError ## (100-199) Parameter Errors when 101 Facebook::InvalidAPIKeyError when 102 Facebook::InvalidSessionKeyError when 190 Facebook::InvalidAccessTokenError when 100..199 Facebook::ParameterError ## (200-299) User Permission Errors when 200 Facebook::PermissionError when 212 Facebook::OfflineAccessPermissionError when 200..299 Facebook::UserPermissionError ## (300-399) Data Editing Errors when 300..399 Facebook::DataEditingError ## (400-449) Authentication Errors when 400..449 Facebook::AuthenticationError ## (450-455) Session Errors when 450..455 Facebook::SessionError ## (500-599) Application Messaging Errors when 500..599 Facebook::ApplicationMessagingError ## (600-699) FQL Errors when 600..699 Facebook::FQLError ## (700-749) Ref Errors when 700..749 Facebook::RefError ## (750-799) Application Integration Errors when 750..799 Facebook::ApplicationIntegrationError ## (900-949) Application Information Errors when 900..949 Facebook::ApplicationInformationError ## (950-999) Batch API Errors when 950..999 Facebook::BatchAPIError else Facebook::GenericException end raise exception, e.response rescue Saddle::TimeoutError => e raise Facebook::TimeoutError, e.response end end