Sha256: c58c8d1b9d33c45a06bac2a5045c70bff6e490678e8141e31d9daeb47e68d0a8

Contents?: true

Size: 854 Bytes

Versions: 10

Compression:

Stored size: 854 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Sortitions
    SortitionsType = GraphQL::ObjectType.define do
      interfaces [-> { Decidim::Core::ComponentInterface }]

      name "Sortitions"
      description "A sortition component of a participatory space."

      connection :sortitions, SortitionType.connection_type do
        resolve ->(component, _args, _ctx) {
                  SortitionTypeHelper.base_scope(component).includes(:component)
                }
      end

      field(:sortition, SortitionType) do
        argument :id, !types.ID

        resolve ->(component, args, _ctx) {
          SortitionTypeHelper.base_scope(component).find_by(id: args[:id])
        }
      end
    end

    module SortitionTypeHelper
      def self.base_scope(component)
        Sortition.where(component: component)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
decidim-sortitions-0.23.6 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.23.5 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.23.4 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.23.3 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.23.2 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.23.1 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.23.1.rc1 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.23.0 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.22.0 app/types/decidim/sortitions/sortitions_type.rb
decidim-sortitions-0.21.0 app/types/decidim/sortitions/sortitions_type.rb