class Lolitado::Graph
Public Class Methods
format_response(response, msecs)
click to toggle source
format api response, override the parent method in API
class
@param response [String] api response @param msecs [Float] benchmark for api response time
# File lib/lolitado/api.rb, line 93 def self.format_response response, msecs if response.parsed_response.is_a?(Hash) if response.parsed_response.has_key?('errors') message = response.parsed_response else message = response.parsed_response['data'].values[0] end else message = {'errors'=>response.parsed_response} end new_response = {:response => response, :message => message, :status => response.code, :duration => msecs} response_with_hash_key = JSON.parse(JSON[new_response], symbolize_names: true) return response_with_hash_key end
generate_body(query, variables)
click to toggle source
generate http request body for graph api response
@param query [String] graph query @param variables [String] input variables for graph query using
# File lib/lolitado/api.rb, line 114 def self.generate_body query, variables body = {} body['query'] = query if variables variable_indices = query.enum_for(:scan, /(?=\$.*:)/).map { Regexp.last_match.offset(0).first } if query.include?('$input') && variable_indices.to_a.length == 1 body['variables'] = {'input'=>variables} else body['variables'] = variables end end body['operationName'] = query.split(' ')[1].split('(')[0] return body.to_json end
request(query, variables = false)
click to toggle source
define a customize http request method for graph api, forward this method to call HTTParty.get or HTTParty.post or HTTParty.put or HTTParty.delete method
@param query [String] graph query @param variables [String] input variables for graph query using
Calls superclass method
Lolitado::API::request
# File lib/lolitado/api.rb, line 83 def self.request query, variables = false super(:post, '', generate_body(query, variables)) end