Sha256: 97d07d2392f981119e38732ec5eabd58b529e6e977e412fc139df9375ce5a14b
Contents?: true
Size: 1.01 KB
Versions: 4
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Motor class RunQueriesController < ApiBaseController load_and_authorize_resource :query, only: :show, parent: false before_action :build_query, only: :create authorize_resource :query, only: :create rescue_from 'ActiveRecord::StatementInvalid' do |e| render json: { errors: [{ detail: e.message }] }, status: :unprocessable_entity end def show render json: query_result_hash(query_result) end def create render json: query_result_hash(query_result) end private def query_result Queries::RunQuery.call(@query, variables_hash: params[:variables]) end def query_result_hash(query_result) { data: query_result.data, meta: { columns: query_result.columns } } end def build_query @query = Motor::Queries::Persistance.build_from_params(query_params) end def query_params params.require(:data).permit(:sql_body, preferences: {}) end end end
Version data entries
4 entries across 4 versions & 1 rubygems