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

Version Path
motor-admin-0.4.20 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.19 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-pz-0.4.18.1 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.18 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.17 app/controllers/motor/run_graphql_requests_controller.rb
motor-alexandermohan-admin-panel-0.4.161 app/controllers/motor/run_graphql_requests_controller.rb
alexandermohan-admin-panel-0.4.161 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.16 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-pz-0.4.14 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.15 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.14 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.13 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.12 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.11 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-pz-0.4.10 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.10 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-pz-0.4.9 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.9 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.8 app/controllers/motor/run_graphql_requests_controller.rb
motor-admin-0.4.7 app/controllers/motor/run_graphql_requests_controller.rb