Sha256: 5d46e6b85d563e456d7b2b29ffede6298c5a6a0ce4c917fb552c1e8769a26115
Contents?: true
Size: 1.19 KB
Versions: 59
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module Motor class RunGraphqlRequestsController < ApiBaseController JWT_TTL = 2.hours wrap_parameters :data def create respond_with_result end private def respond_with_result response = Motor::ApiConfigs.run_grapql(find_or_initialize_api_config, query: request_params[:query], variables: request_params[:variables], headers: { 'Authorization' => "Bearer #{current_user_jwt}" }) self.response_body = response.body self.status = response.code.to_i end def find_or_initialize_api_config Motor::ApiConfig.find_by(name: request_params[:api_config_name]) || Motor::ApiConfig.new(url: request_params[:api_config_name]) end def current_user_jwt return '' unless defined?(JWT) return '' unless current_user payload = { uid: current_user.id, email: current_user.email, exp: JWT_TTL.from_now.to_i } JWT.encode(payload, Rails.application.secrets.secret_key_base) end def request_params params.require(:data).permit! end end end
Version data entries
59 entries across 59 versions & 5 rubygems