Sha256: bc365db00ed79496a67f073431a95282d64353f542f7f3e18dc91483234889d2

Contents?: true

Size: 966 Bytes

Versions: 2

Compression:

Stored size: 966 Bytes

Contents

module GraphitiGql
  class Engine < ::Rails::Engine
    isolate_namespace GraphitiGql

    # TODO improvable?
    config.after_initialize do
    # initializer "graphiti_gql.generate_schema" do
      Dir.glob("#{Rails.root}/app/resources/**/*").each { |f| require(f) }
      GraphitiGql.schema!
    end

    initializer "graphiti_gql.define_controller" do
      require "#{Rails.root}/app/controllers/application_controller"
      app_controller = GraphitiGql.config.application_controller || ::ApplicationController

      # rubocop:disable Lint/ConstantDefinitionInBlock(Standard)
      class GraphitiGql::ExecutionController < app_controller
        def execute
          params = request.params # avoid strong_parameters
          variables = params[:variables] || {}
          result = GraphitiGql.run params[:query],
            params[:variables],
            { current_user: current_user }
          render json: result
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
graphiti_gql-0.2.1 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.0 lib/graphiti_gql/engine.rb