class GraphqlMutationsGenerator
Public Instance Methods
generate()
click to toggle source
# File lib/generators/graphql_mutations/graphql_mutations_generator.rb, line 3 def generate resource = file_name.underscore.singularize dir = "app/graphql/#{resource.pluralize}/mutations" system("mkdir -p #{dir}") generate_create_mutation(dir, resource) generate_update_mutation(dir, resource) generate_destroy_mutation(dir, resource) generate_bulk_create_mutation(dir, resource) generate_bulk_update_mutation(dir, resource) end
Private Instance Methods
generate_bulk_create_mutation(dir, resource)
click to toggle source
# File lib/generators/graphql_mutations/graphql_mutations_generator.rb, line 16 def generate_bulk_create_mutation(dir, resource) File.write( "#{dir}/bulk_create.rb", <<~STRING #{resource_class(resource)}::Mutations::BulkCreate = GraphQL::Field.define do description 'creates some #{resource_class(resource).pluralize}' type types[#{resource_class(resource)}::Type] argument :#{resource}, !types[#{resource_class(resource)}::Mutations::InputType] resolve ApplicationService.call(:#{resource}, :bulk_create) end STRING ) end
generate_bulk_update_mutation(dir, resource)
click to toggle source
# File lib/generators/graphql_mutations/graphql_mutations_generator.rb, line 32 def generate_bulk_update_mutation(dir, resource) File.write( "#{dir}/bulk_update.rb", <<~STRING #{resource_class(resource)}::Mutations::BulkUpdate = GraphQL::Field.define do description 'Updates some #{resource_class(resource).pluralize}' type types[#{resource_class(resource)}::Type] argument :#{resource}, !types[#{resource_class(resource)}::Mutations::InputType] resolve ApplicationService.call(:#{resource}, :bulk_update) end STRING ) end
generate_create_mutation(dir, resource)
click to toggle source
# File lib/generators/graphql_mutations/graphql_mutations_generator.rb, line 48 def generate_create_mutation(dir, resource) File.write( "#{dir}/create.rb", <<~STRING #{resource_class(resource)}::Mutations::Create = GraphQL::Field.define do description 'Creates a #{resource_class(resource).singularize}' type #{resource_class(resource)}::Type argument :#{resource}, !#{resource_class(resource)}::Mutations::InputType resolve ApplicationService.call(:#{resource}, :create) end STRING ) end
generate_destroy_mutation(dir, resource)
click to toggle source
# File lib/generators/graphql_mutations/graphql_mutations_generator.rb, line 81 def generate_destroy_mutation(dir, resource) File.write( "#{dir}/destroy.rb", <<~STRING #{resource_class(resource)}::Mutations::Destroy = GraphQL::Field.define do description 'Destroys a #{resource_class(resource).singularize}' type #{resource_class(resource)}::Type argument :id, !types.String resolve ApplicationService.call(:#{resource}, :destroy) end STRING ) end
generate_update_mutation(dir, resource)
click to toggle source
# File lib/generators/graphql_mutations/graphql_mutations_generator.rb, line 64 def generate_update_mutation(dir, resource) File.write( "#{dir}/update.rb", <<~STRING #{resource_class(resource)}::Mutations::Update = GraphQL::Field.define do description 'Updates a #{resource_class(resource).singularize}' type #{resource_class(resource)}::Type argument :id, types.String argument :#{resource}, !#{resource_class(resource)}::Mutations::InputType resolve ApplicationService.call(:#{resource}, :update) end STRING ) end
resource_class(resource)
click to toggle source
# File lib/generators/graphql_mutations/graphql_mutations_generator.rb, line 97 def resource_class(resource) @resource_class ||= resource.pluralize.camelize end