Class: Lolitado::Graph

Inherits:
API
  • Object
show all
Defined in:
lib/lolitado/api.rb

Class Method Summary collapse

Methods inherited from API

add_headers, new_headers

Class Method Details

.format_response(response, msecs) ⇒ Object

format api response, override the parent method in API class

Parameters:

  • response (String)

    api response

  • msecs (Float)

    benchmark for api response time



83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/lolitado/api.rb', line 83

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
  return {:response => response, :message => message, :status => response.code, :duration => msecs}
end

.generate_body(query, variables) ⇒ Object

generate http request body for graph api response

Parameters:

  • query (String)

    graph query

  • variables (String)

    input variables for graph query using



102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/lolitado/api.rb', line 102

def self.generate_body query, variables
  body = {}
  body['query'] = query
  if variables
    if query.include?('$input')
      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) ⇒ Object

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

Parameters:

  • query (String)

    graph query

  • variables (String) (defaults to: false)

    input variables for graph query using



73
74
75
# File 'lib/lolitado/api.rb', line 73

def self.request query, variables = false
  super(:post, '/', generate_body(query, variables))
end