Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
module ActionSprout::Facebook
  class BadResponse < Response
    def self.from_response(response)
      self.new response.http_status, response.parsed_response, response.headers, response.graph
    end

    def message
      error_val 'message'
    end

    def fb_code
      error_val 'code'
    end

    def fb_subcode
      error_val 'error_subcode'
    end

    def type
      error_val 'type'
    end

    def authentication_error?
      AUTHENTICATION_ERROR_CODES.include? fb_code
    end

    def transient?
      error_val 'is_transient'
    end

    # I've seen error code 1 as either:
    #
    # * An unknown error occurred
    # * Please reduce the amount of data you're asking for, then retry your request
    def unknown?
      fb_code == 1
    end

    def page_migrated?
      fb_code == 21
    end

    def not_found?
      (fb_code == 100 && fb_subcode == 33) || fb_code == 803
    end

    private

    AUTHENTICATION_ERROR_CODES = [102, 190, 450, 452, 2500]

    def error_val(key)
      parsed_response.dig 'error', key
    end
  end
end