lib/fb_graph/node.rb in fb_graph-0.0.8 vs lib/fb_graph/node.rb in fb_graph-0.1.0

- old
+ new

@@ -25,56 +25,54 @@ destory(self.identifier, options) end protected - def get(options = {}) - _endpoint_ = build_endpoint(options.merge!(:method => :get)) - handle_response RestClient.get(_endpoint_) - rescue RestClient::Exception => e - raise FbGraph::Exception.new(e.http_code, e.message, e.http_body) + def get(params = {}) + _endpoint_ = build_endpoint(params.merge!(:method => :get)) + handle_response do + RestClient.get(_endpoint_) + end end - def post(options = {}) - _endpoint_ = build_endpoint(options.merge!(:method => :post)) - handle_response RestClient.post(_endpoint_, options) - - rescue RestClient::Exception => e - raise FbGraph::Exception.new(e.http_code, e.message, e.http_body) + def post(params = {}) + _endpoint_ = build_endpoint(params.merge!(:method => :post)) + handle_response do + RestClient.post(_endpoint_, params) + end end - def delete(options = {}) - _endpoint_ = build_endpoint(options.merge!(:method => :delete)) - handle_response RestClient.delete(_endpoint_, options) - rescue RestClient::Exception => e - raise FbGraph::Exception.new(e.http_code, e.message, e.http_body) + def delete(params = {}) + _endpoint_ = build_endpoint(params.merge!(:method => :delete)) + handle_response do + RestClient.delete(_endpoint_, params) + end end private - def build_endpoint(options = {}) - _endpoint_ = if options[:connection] - File.join(self.endpoint, options.delete(:connection)) + def build_endpoint(params = {}) + _endpoint_ = if params[:connection] + File.join(self.endpoint, params.delete(:connection)) else self.endpoint end - options[:access_token] ||= self.access_token - options.delete_if do |k, v| + params[:access_token] ||= self.access_token + params.delete_if do |k, v| v.blank? end - if options.delete(:method) == :get && options.present? - _endpoint_ << "?#{options.to_query}" + if params.delete(:method) == :get && params.present? + _endpoint_ << "?#{params.to_query}" end _endpoint_ end - def handle_response(response) + def handle_response + response = yield case response.body when 'true' true - when 'false' - false else _response_ = JSON.parse(response.body).with_indifferent_access if _response_[:error] case _response_[:error][:type] when 'OAuthAccessTokenException' @@ -86,8 +84,10 @@ end else _response_ end end + rescue RestClient::Exception => e + raise FbGraph::Exception.new(e.http_code, e.message, e.http_body) end end end \ No newline at end of file