Sha256: f654dcdbb9f731d7ac0ab807854e5bd5b7ae4963de58a2c240a481432cc3f612

Contents?: true

Size: 1.96 KB

Versions: 54

Compression:

Stored size: 1.96 KB

Contents

# frozen_string_literal: true

module Decidim
  module Comments
    # This module's job is to extend the API with custom fields related to
    # decidim-comments.
    module MutationExtensions
      # Public: Extends a type with `decidim-comments`'s fields.
      #
      # type - A GraphQL::BaseType to extend.
      #
      # Returns nothing.
      def self.included(type)
        type.field :commentable, Decidim::Comments::CommentableMutationType, null: false do
          description "A commentable"

          argument :id, GraphQL::Types::String, "The commentable's ID", required: true
          argument :type, GraphQL::Types::String, "The commentable's class name. i.e. `Decidim::ParticipatoryProcess`", required: true
          argument :locale, GraphQL::Types::String, "The locale for which to get the comments text", required: false
          argument :toggle_translations, GraphQL::Types::Boolean, "Whether the user asked to toggle the machine translations or not.", required: false
        end

        type.field :comment, Decidim::Comments::CommentMutationType, null: false do
          description "A comment"

          argument :id, GraphQL::Types::ID, "The comment's id", required: true
          argument :locale, GraphQL::Types::String, "The locale for which to get the comments text", required: false
          argument :toggle_translations, GraphQL::Types::Boolean, "Whether the user asked to toggle the machine translations or not.", required: false
        end
      end

      def commentable(id:, type:, locale: Decidim.default_locale, toggle_translations: false)
        I18n.locale = locale.presence
        RequestStore.store[:toggle_machine_translations] = toggle_translations
        type.constantize.find(id)
      end

      def comment(id:, locale: Decidim.default_locale, toggle_translations: false)
        I18n.locale = locale.presence
        RequestStore.store[:toggle_machine_translations] = toggle_translations
        Comment.find(id)
      end
    end
  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
decidim-comments-0.27.10 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.30.0.rc3 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.30.0.rc2 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.30.0.rc1 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.29.2 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.28.5 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.29.1 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.28.4 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.27.9 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.29.0 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.28.3 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.27.8 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.29.0.rc4 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.29.0.rc3 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.29.0.rc2 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.29.0.rc1 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.28.2 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.27.7 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.28.1 lib/decidim/comments/mutation_extensions.rb
decidim-comments-0.27.6 lib/decidim/comments/mutation_extensions.rb