Sha256: 3776acbc88b82cc8cdec6fa95a87cda15ce82196136f294911abfda90141d6dc

Contents?: true

Size: 1.45 KB

Versions: 19

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

module Ibrain
  module Mutations
    class BaseMutation < GraphQL::Schema::RelayClassicMutation
      argument_class Types::BaseArgument
      field_class Types::BaseField
      input_object_class Types::BaseInputObject
      object_class Types::BaseObject

      argument :attribute, Types::AttributeType, required: false
      argument :attributes, [Types::AttributeType], required: false

      def ready?(args)
        @params = ActionController::Parameters.new(
          args.to_h.with_indifferent_access.transform_keys(&:underscore)
        )
        @resource = load_resource
        true
      end

      protected

      attr_reader :params, :resource

      def upload_permitted
        %i[content_type headers original_filename tempfile]
      end

      def cryptor
        ::Ibrain::Encryptor.new
      end

      def current_user
        context[:current_user]
      end

      def controller
        context[:controller]
      end

      def session
        context[:session]
      end

      def request
        context[:request]
      end

      def graphql_return
        {
          returning: resource.reload
        }
      end

      def success_response
        {
          success: true
        }
      end

      def id_from_params
        params[:id]
      end

      def attribute_params
        params[:attributes].to_params
      rescue StandardError
        ActionController::Parameters.new({})
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ibrain-core-0.5.15 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.13 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.12 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.10 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.9 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.8 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.7 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.6 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.5 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.4 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.3 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.2 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.1 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.5.0 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.4.9 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.4.7 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.4.5 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.4.4 app/graphql/ibrain/mutations/base_mutation.rb
ibrain-core-0.4.3 app/graphql/ibrain/mutations/base_mutation.rb