Sha256: a06a27c5f0babdd4ae5bb1de3576f4958b2a1c97f8a892cca1d744398c91d3a5

Contents?: true

Size: 679 Bytes

Versions: 2

Compression:

Stored size: 679 Bytes

Contents

# frozen_string_literal: true
require_relative "query/request"
require_relative "query/response"
require_relative "resource/resource"
require_relative "source/db"
require_relative "source/rest"

module Qravan

  # Sources for data extractions class
  class Query
    attr_accessor :cargo

    def initialize(cargo)
      @cargo ||= cargo
    end

    def call(env)
      query = Rack::Request.new(env)
      request = Qravan::Request.new(JSON.parse(query.body.read), cargo)
      response = Qravan::Response.new(request)

      body = [response.answer]
      status  = 200
      headers = { "content-type" => "application/json" }

      [status, headers, body]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
qravan-0.1.1 lib/qravan/query.rb
qravan-0.1.0 lib/qravan/query.rb