Sha256: cf059c587e7eb77e1c90660edc624050d6a11018d729e17ecf8aa930e27b39a5

Contents?: true

Size: 1.08 KB

Versions: 10

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module Decidim
  module Core
    # An abstract resolver for the GraphQL component endpoints inside a participatory_space.
    # Used in the keyword "components", ie:
    #
    # participatoryProcesses {
    #   components {...}
    # }
    #
    # Needs to be extended and add arguments.
    #
    # This is used by ParticipatorySpaceInterface to apply filter/orders when
    # searching raw components. When listing properly defined components,
    # use ComponentListBase instead
    class ComponentList < GraphQL::Function
      include NeedsApiFilterAndOrder
      attr_reader :model_class

      def initialize
        @model_class = Component
      end

      def call(participatory_space, args, _ctx)
        @query = Decidim::Component
        # remove default ordering if custom order required
        @query = @query.unscoped if args[:order]
        @query = @query.where(
          participatory_space: participatory_space
        ).published
        add_filter_keys(args[:filter])
        add_order_keys(args[:order].to_h)
        @query
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
decidim-core-0.23.6 app/functions/decidim/core/component_list.rb
decidim-core-0.23.5 app/functions/decidim/core/component_list.rb
decidim-core-0.23.4 app/functions/decidim/core/component_list.rb
decidim-core-0.23.3 app/functions/decidim/core/component_list.rb
decidim-core-0.23.2 app/functions/decidim/core/component_list.rb
decidim-core-0.23.1 app/functions/decidim/core/component_list.rb
decidim-core-0.23.1.rc1 app/functions/decidim/core/component_list.rb
decidim-core-0.23.0 app/functions/decidim/core/component_list.rb
decidim-core-0.22.0 app/functions/decidim/core/component_list.rb
decidim-core-0.21.0 app/functions/decidim/core/component_list.rb