lib/generators/cm_admin/add_graphql_generator.rb



require 'rails/generators'

module CmAdmin
  module Generators
    class AddGraphqlGenerator < Rails::Generators::Base
      source_root File.expand_path('templates', __dir__)

      def add_graphql
        gem 'graphql'
        gem 'graphql-errors'
        gem 'graphql-rails_logger'
        generate 'graphql:install'
        template 'graphql/graphql_schema.rb', "app/graphql/#{Rails.application.class.module_parent_name.underscore}_schema.rb"
        directory 'graphql/inputs/base', 'app/graphql/types/inputs/base'
        directory 'graphql/enums/base', 'app/graphql/types/enums/base'
        directory 'graphql/objects/base', 'app/graphql/types/objects/base'
        directory 'concerns', 'app/models/concerns'
        copy_file 'graphql/mutations/base_mutation.rb', 'app/graphql/mutations/base_mutation.rb'
        copy_file 'graphql/queries/base_query.rb', 'app/graphql/queries/base_query.rb'
        copy_file 'exceptions/base_exception.rb', 'app/exceptions/base_exception.rb'
        copy_file 'constants.rb', 'config/initializers/constants.rb'
      end
    end
  end
end