class GraphqlConnector::HttpClient
Wrapper class for HTTParty post query
Public Class Methods
new(uri, headers = {}, connector = {})
click to toggle source
# File lib/graphql_connector/http_client.rb, line 6 def initialize(uri, headers = {}, connector = {}) @uri = uri @headers = headers @connector = connector end
Public Instance Methods
mutation(model, inputs, selected_fields)
click to toggle source
# File lib/graphql_connector/http_client.rb, line 19 def mutation(model, inputs, selected_fields) query_string = Formatters::MutationFormat.new(model, inputs, selected_fields).create parsed_body = raw_query(query_string) format_body(parsed_body['data'][model.to_s]) end
query(model, conditions, selected_fields)
click to toggle source
# File lib/graphql_connector/http_client.rb, line 12 def query(model, conditions, selected_fields) query_string = Formatters::QueryFormat.new(model, conditions, selected_fields).create parsed_body = raw_query(query_string) format_body(parsed_body['data'][model.to_s]) end
raw_query(query_string, variables: {})
click to toggle source
# File lib/graphql_connector/http_client.rb, line 26 def raw_query(query_string, variables: {}) response = HTTParty.post(@uri, headers: handle_headers, body: { query: query_string, variables: variables }) parsed_body = JSON.parse(response.body) verify_response!(parsed_body) parsed_body end
Private Instance Methods
format_body(response_body)
click to toggle source
# File lib/graphql_connector/http_client.rb, line 45 def format_body(response_body) return OpenStruct.new(response_body) unless response_body.is_a? Array response_body.map { |entry| OpenStruct.new(entry) } end
handle_headers()
click to toggle source
# File lib/graphql_connector/http_client.rb, line 38 def handle_headers return @headers if @connector.empty? @headers .merge(@connector[:base].public_send(@connector[:method])) end
verify_response!(parsed_body)
click to toggle source
# File lib/graphql_connector/http_client.rb, line 51 def verify_response!(parsed_body) return unless parsed_body.key? 'errors' raise CustomAttributeError, parsed_body['errors'] end