2021-04-03 11:14:15 +00:00
|
|
|
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-03 11:14:15 +00:00
|
|
|
|
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]
|
|
|
|
|
)
|
2021-04-30 12:43:29 +00:00
|
|
|
|
|
|
|
|
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-03 11:36:38 +00:00
|
|
|
|
2021-04-29 06:41:23 +00:00
|
|
|
def update
|
|
|
|
|
@data_query = DataQuery.find params[:id]
|
2021-04-29 16:39:09 +00:00
|
|
|
@data_query.update(options: params[:options], name: params[:name])
|
2021-04-30 12:43:29 +00:00
|
|
|
|
|
|
|
|
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-04 03:48:04 +00:00
|
|
|
|
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
|
2021-05-13 04:07:58 +00:00
|
|
|
render json: result, status: result[:code] || 200
|
2021-04-29 06:41:23 +00:00
|
|
|
end
|
2021-04-03 11:14:15 +00:00
|
|
|
end
|