lib/fbgraph/base.rb in fbgraph-0.1.1 vs lib/fbgraph/base.rb in fbgraph-0.1.4

- old
+ new

@@ -1,10 +1,10 @@ module FBGraph class Base - attr_reader :objects , :connection_type + attr_reader :objects , :connection_type , :logger def initialize(client) @client = client @params = {} end @@ -37,32 +37,33 @@ end def info!(parsed = true) if @objects.is_a? Array @params.merge!({:ids => @objects.join(',')}) - uri = build_open_graph_path(nil,nil, @params) + path = build_open_graph_path(nil,nil, @params) elsif @objects.is_a? String - uri = build_open_graph_path(@objects , @connection_type, @params) + path = build_open_graph_path(@objects , @connection_type, @params) end - puts "FBGRAPH [GET]: #{uri}" - result = @client.consumer.get(uri) + puts "FBGRAPH [GET]: #{path}" + puts "ACCESS TOKEN: #{@client.access_token}" + result = @client.consumer[path].get return parse_json(result, parsed) end def publish!(data = {},parsed = true) @params.merge!(data) - uri = build_open_graph_path(@objects , @connection_type) - puts "FBGRAPH [POST]: #{uri}" - result = @client.consumer.post(uri , @params , multipart_header) + path = build_open_graph_path(@objects , @connection_type) + puts "FBGRAPH [POST]: #{path}" + result = @client.consumer[path].post(@params) return parse_json(result, parsed) end def delete!(parsed = true) - uri = build_open_graph_path(@objects , nil) - puts "FBGRAPH [DELETE]: #{uri}" - result = @client.consumer.delete(uri , @params) + path = build_open_graph_path(@objects , nil) + puts "FBGRAPH [DELETE]: #{path}" + result = @client.consumer[path].post(@params.merge(:method => :delete)) return parse_json(result, parsed) end %w(limit offset until since).each do |paging| class_eval <<-PAGING @@ -75,27 +76,19 @@ private def parse_json(result, parsed) - return parsed ? Hashie::Mash.new(JSON.parse(result)) : result + return parsed ? Hashie::Mash.new(JSON.parse(result.body)) : result.body end + + def build_open_graph_path(objects,connection_type = nil , params = {}) - request = "/" + [objects , connection_type].compact.join('/') + params.merge!(:access_token => @client.access_token) + request = [objects , connection_type].compact.join('/') request += "?"+params.to_a.map{|p| p.join('=')}.join('&') unless params.empty? - request - end - - def multipart_header - if multipart? - header = {"Content-Disposition" => "form-data", "name" => "control-name"} - end - header || {} - end - - def multipart? - %w(photos).include?(@connection_type) || %w(photo post).include?(@objects) + URI.encode(request) end end end