Sha256: f13961f3072546a009ed0bc5792a817a12d87b93328a77842badfb2a1588bbef

Contents?: true

Size: 1.08 KB

Versions: 13

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
      include NeedsApiFilterAndOrder
      include NeedsApiDefaultOrder
      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:).published
        add_filter_keys(args[:filter])
        add_order_keys(args[:order].to_h)
        add_default_order
        @query
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
decidim-core-0.29.1 lib/decidim/api/functions/component_list.rb
decidim-core-0.28.4 lib/decidim/api/functions/component_list.rb
decidim-core-0.29.0 lib/decidim/api/functions/component_list.rb
decidim-core-0.28.3 lib/decidim/api/functions/component_list.rb
decidim-core-0.29.0.rc4 lib/decidim/api/functions/component_list.rb
decidim-core-0.29.0.rc3 lib/decidim/api/functions/component_list.rb
decidim-core-0.29.0.rc2 lib/decidim/api/functions/component_list.rb
decidim-core-0.29.0.rc1 lib/decidim/api/functions/component_list.rb
decidim-core-0.28.2 lib/decidim/api/functions/component_list.rb
decidim-core-0.28.1 lib/decidim/api/functions/component_list.rb
decidim-core-0.28.0 lib/decidim/api/functions/component_list.rb
decidim-core-0.28.0.rc5 lib/decidim/api/functions/component_list.rb
decidim-core-0.28.0.rc4 lib/decidim/api/functions/component_list.rb