Sha256: 6219a62ec6be6cf35554680ade98ad4879cb9e25e3f56a7a0247f4e075319f4e

Contents?: true

Size: 1.64 KB

Versions: 11

Compression:

Stored size: 1.64 KB

Contents

# frozen_string_literal: true

require_relative 'operation_preparers/gql_name_setter'
require_relative 'operation_preparers/mutation_field_setter'
require_relative 'operation_preparers/resolver_type_setter'
require_relative 'operation_preparers/resource_name_setter'
require_relative 'operation_preparers/default_operation_preparer'
require_relative 'operation_preparers/custom_operation_preparer'

module GraphqlDevise
  module MountMethod
    class OperationPreparer
      def initialize(mapping_name:, selected_operations:, preparer:, custom:, additional_operations:)
        @selected_operations   = selected_operations
        @preparer              = preparer
        @mapping_name          = mapping_name
        @custom                = custom
        @additional_operations = additional_operations
      end

      def call
        default_operations = OperationPreparers::DefaultOperationPreparer.new(
          selected_operations: @selected_operations,
          custom_keys:         @custom.keys,
          mapping_name:        @mapping_name,
          preparer:            @preparer
        ).call

        custom_operations = OperationPreparers::CustomOperationPreparer.new(
          selected_keys:     @selected_operations.keys,
          custom_operations: @custom,
          mapping_name:      @mapping_name
        ).call

        additional_operations = @additional_operations.each_with_object({}) do |(action, operation), result|
          result[action] = OperationPreparers::ResourceNameSetter.new(@mapping_name).call(operation)
        end

        default_operations.merge(custom_operations).merge(additional_operations)
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
graphql_devise-0.14.3 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.14.2 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.14.1 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.14.0 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.13.6 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.13.5 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.13.4 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.13.3 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.13.2 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.13.1 lib/graphql_devise/mount_method/operation_preparer.rb
graphql_devise-0.13.0 lib/graphql_devise/mount_method/operation_preparer.rb