Class: RFGraph::Request
- Inherits:
-
Object
- Object
- RFGraph::Request
- Defined in:
- lib/rfgraph/request.rb
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
Instance Method Summary collapse
- #delete_object(id) ⇒ Object
- #get_connections(id, connection_name, args = {}) ⇒ Object
- #get_object(id, args = {}) ⇒ Object
- #get_objects(ids, args = {}) ⇒ Object
-
#initialize(access_token = nil) ⇒ Request
constructor
A new instance of Request.
- #post_request(path, post_args = {}) ⇒ Object
- #put_comment(object_id, message) ⇒ Object
- #put_like(object_id) ⇒ Object
- #put_object(parent_object, connection_name, data = {}) ⇒ Object
- #put_wall_post(message, attachment = {}, profile_id = "me") ⇒ Object
- #request(path, url_args = {}, post_args = nil) ⇒ Object
Constructor Details
#initialize(access_token = nil) ⇒ Request
Returns a new instance of Request.
9 10 11 |
# File 'lib/rfgraph/request.rb', line 9 def initialize(access_token = nil) @access_token = access_token end |
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
7 8 9 |
# File 'lib/rfgraph/request.rb', line 7 def access_token @access_token end |
Instance Method Details
#delete_object(id) ⇒ Object
43 44 45 |
# File 'lib/rfgraph/request.rb', line 43 def delete_object(id) post_request(id, {"method"=> "delete"}) end |
#get_connections(id, connection_name, args = {}) ⇒ Object
22 23 24 |
# File 'lib/rfgraph/request.rb', line 22 def get_connections(id, connection_name, args = {}) return request(id + "/" + connection_name, args) end |
#get_object(id, args = {}) ⇒ Object
13 14 15 |
# File 'lib/rfgraph/request.rb', line 13 def get_object(id, args = {}) request(id, args) end |
#get_objects(ids, args = {}) ⇒ Object
17 18 19 20 |
# File 'lib/rfgraph/request.rb', line 17 def get_objects(ids, args = {}) args["ids"] = ids.join(",") return request("", args) end |
#post_request(path, post_args = {}) ⇒ Object
47 48 49 |
# File 'lib/rfgraph/request.rb', line 47 def post_request(path, post_args = {}) request(path, {}, post_args) end |
#put_comment(object_id, message) ⇒ Object
35 36 37 |
# File 'lib/rfgraph/request.rb', line 35 def put_comment(object_id, ) put_object(object_id, "comments", {"message" => }) end |
#put_like(object_id) ⇒ Object
39 40 41 |
# File 'lib/rfgraph/request.rb', line 39 def put_like(object_id) put_object(object_id, "likes") end |
#put_object(parent_object, connection_name, data = {}) ⇒ Object
26 27 28 29 |
# File 'lib/rfgraph/request.rb', line 26 def put_object(parent_object, connection_name, data = {}) raise RFGraphError.new(-1, "Access token required for put requests") if access_token.nil? post_request(parent_object + "/" + connection_name, data) end |
#put_wall_post(message, attachment = {}, profile_id = "me") ⇒ Object
31 32 33 |
# File 'lib/rfgraph/request.rb', line 31 def put_wall_post(, = {}, profile_id = "me") put_object(profile_id, "feed", .merge({'message' => })) end |
#request(path, url_args = {}, post_args = nil) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/rfgraph/request.rb', line 51 def request(path, url_args = {}, post_args = nil) if access_token if post_args post_args["access_token"] = access_token else url_args["access_token"] = access_token end end encoded_url_args = url_args.collect {|k,v| "#{CGI.escape k.to_s}=#{CGI.escape v.to_s}" }.join("&") url = URI.parse("#{BASE_URL}/#{path}?#{encoded_url_args}") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE response = if post_args encoded_post_args = post_args.collect {|k,v| "#{CGI.escape k.to_s}=#{CGI.escape v.to_s}" }.join("&") http.post("#{url.path}?#{url.query}", encoded_post_args) else http.get("#{url.path}?#{url.query}") end response = JSON.parse(response.body) if response["error"] raise RFGraphError.new(response["error"]["code"], response["error"]["message"]) end response end |