ToolJet/app/controllers/data_queries_controller.rb

48 lines
1.2 KiB
Ruby
Raw Normal View History

class DataQueriesController < ApplicationController
2021-05-07 08:25:09 +00:00
skip_before_action :authenticate_request, only: [:run]
2021-04-29 06:41:23 +00:00
def index
@data_queries = DataQuery.where(app_id: params[:app_id])
end
2021-04-29 06:41:23 +00:00
def create
@data_query = DataQuery.create(
name: params[:name],
kind: params[:kind],
options: params[:options],
app_id: params[:app_id],
data_source_id: params[:data_source_id]
)
if @data_query.errors.present?
render json: { message: 'Query could not be created' }, status: 500
else
render json: { message: 'success' }
end
2021-04-29 06:41:23 +00:00
end
2021-04-29 06:41:23 +00:00
def update
@data_query = DataQuery.find params[:id]
@data_query.update(options: params[:options], name: params[:name])
if @data_query.errors.present?
render json: { message: 'Query could not be updated' }, status: 500
else
render json: { message: 'success' }
end
2021-04-29 06:41:23 +00:00
end
2021-04-29 06:41:23 +00:00
def run
@data_query = DataQuery.find params[:data_query_id]
2021-05-07 08:25:09 +00:00
unless @data_query.app.is_public
authenticate_request
end
2021-04-29 06:41:23 +00:00
query_service = QueryService.new @data_query, params[:options], @current_user
result = query_service.process
render json: result, status: result[:code] || 200
2021-04-29 06:41:23 +00:00
end
end