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