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