Sha256: d296b7fc3c1d43e752000b16e4582760d762053abe9756217dc43819abfe9494

Contents?: true

Size: 765 Bytes

Versions: 3

Compression:

Stored size: 765 Bytes

Contents

require 'sinatra'

require 'FluidDb'
require 'json'

# Home
class PostRest < Sinatra::Base
  set :static, true
  set :public_folder, File.expand_path('..', __FILE__)

  get '/' do
    send_file settings.public_folder + '/index.htm'
  end

  post '/sql' do
    content_type :json
    FluidDb::Db(ENV[params[:connection_string]])
      .queryForResultset(params[:sql], [])
      .to_json
  end

  get '/rst/:db/:name' do
    content_type :json

    ps = request.env['rack.request.query_hash']

    sql = %{
      SELECT *
      FROM #{params[:name]}
      WHERE 1=1
      #{ps.keys.map { |f| "AND #{f} = ? " }.join('')}
      LIMIT 2000
      ;
    }

    FluidDb::Db(ENV[params[:db]])
      .queryForResultset(sql, ps.values)
      .to_json
  end
end

PostRest.run!

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
postrest-0.0.3 lib/app.rb
postrest-0.0.2 app.rb
postrest-0.0.1 app.rb