module Delfos::Neo4j::QueryExecution::HttpQuery

Public Class Methods

included(base) click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 6
def self.included(base)
  base.instance_eval do
    attr_reader :query, :params
  end
end
new(query, params, uri = nil) click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 12
def initialize(query, params, uri = nil)
  @query = query
  @params = params
  @uri = uri
end

Private Instance Methods

errors?() click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 37
def errors?
  json["errors"].length.positive?
end
fetch() click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 45
def fetch
  log_query

  Http.new(uri).post(request_body)
end
json() click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 33
def json
  JSON.parse response.body
end
log_query() click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 51
def log_query
  statement = strip_whitespace(query)

  if statement
    begin
    params.each { |k, v| statement = statement.gsub("{#{k}}", v.inspect) }
    rescue
    byebug
    end
    Delfos.logger.debug "sending query: "
    Delfos.logger.debug statement.gsub(/^/, "    ")
  end
end
request_body() click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 20
def request_body
  {
    "statements": [{ "statement": strip_whitespace(query), "parameters": params }],
  }.to_json
end
response() click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 41
def response
  @response ||= fetch
end
strip_whitespace(s) click to toggle source
# File lib/delfos/neo4j/query_execution/http_query.rb, line 26
def strip_whitespace(s)
  s.
    gsub(/^\s+/, "").
    gsub(/ +/, " ").
    gsub("\n\n", "\n")
end