Sha256: 2f84806c78e8f7d45466080ca7a7283a81352d814fde4f7e199e4371ee3da443

Contents?: true

Size: 1.26 KB

Versions: 12

Compression:

Stored size: 1.26 KB

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

    module ControllerContext
      def graphql_context
        ctx = { controller: self }
        ctx[:current_user] = current_user if respond_to?(:current_user)
        ctx
      end
    end

    initializer "graphiti_gql.define_controller" do
      require "#{Rails.root}/app/controllers/application_controller"
      app_controller = GraphitiGql.config.application_controller || ::ApplicationController
      app_controller.send(:include, ControllerContext)

      # 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],
            graphql_context
          render json: result
        end

        private

        def default_context
          defined?(:current_user)
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
graphiti_gql-0.2.14 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.12 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.11 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.10 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.9 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.8 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.7 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.6 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.5 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.4 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.3 lib/graphiti_gql/engine.rb
graphiti_gql-0.2.2 lib/graphiti_gql/engine.rb