Sha256: 7e2cfb8d1b73b755b385289aaf5116057e37fcb3c206d551e365254a15a119e3

Contents?: true

Size: 911 Bytes

Versions: 20

Compression:

Stored size: 911 Bytes

Contents

module FbGraph
  class Query < Node
    ENDPOINT = 'https://api.facebook.com/method/fql.query'

    attr_accessor :access_token, :query

    def initialize(query, access_token = nil)
      @query = query
      @access_token = access_token
    end

    def fetch(access_token = nil)
      handle_response do
        HTTPClient.new.get ENDPOINT, :query => build_params(access_token)
      end
    end

    private

    def build_params(access_token)
      super(
        :query => self.query,
        :access_token => access_token || self.access_token,
        :format => :json
      )
    end

    def handle_response
      response = super do
        yield
      end
      case response
      when Hash
        if response[:error_code]
          raise Exception.new(response[:error_code], response[:error_msg])
        else
          response
        end
      else
        response
      end
    end

  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
fb_graph-2.0.2 lib/fb_graph/query.rb
fb_graph-2.0.1 lib/fb_graph/query.rb
fb_graph-2.0.0 lib/fb_graph/query.rb
fb_graph-2.0.0.beta lib/fb_graph/query.rb
fb_graph-2.0.0.alpha lib/fb_graph/query.rb
fb_graph-1.9.5 lib/fb_graph/query.rb
fb_graph-1.9.4 lib/fb_graph/query.rb
fb_graph-1.9.3 lib/fb_graph/query.rb
fb_graph-1.9.2 lib/fb_graph/query.rb
fb_graph-1.9.1 lib/fb_graph/query.rb
fb_graph-1.9.0 lib/fb_graph/query.rb
fb_graph-1.8.6 lib/fb_graph/query.rb
fb_graph-1.8.5 lib/fb_graph/query.rb
fb_graph-1.8.4 lib/fb_graph/query.rb
fb_graph-1.8.3 lib/fb_graph/query.rb
fb_graph-1.8.2 lib/fb_graph/query.rb
fb_graph-1.8.1 lib/fb_graph/query.rb
fb_graph-1.8.0 lib/fb_graph/query.rb
fb_graph-1.8.0.alpha2 lib/fb_graph/query.rb
fb_graph-1.8.0.alpha lib/fb_graph/query.rb