Sha256: 17ca742b4586b3705dfa93bd5bb24ab3c314205f16c4c70bed24a98d640cea4f

Contents?: true

Size: 894 Bytes

Versions: 8

Compression:

Stored size: 894 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Elections
    class ElectionsType < Decidim::Api::Types::BaseObject
      implements Decidim::Core::ComponentInterface

      graphql_name "Elections"
      description "An elections component of a participatory space."

      field :elections, Decidim::Elections::ElectionType.connection_type, null: true, connection: true

      def elections
        ElectionsTypeHelper.base_scope(object).includes(:component)
      end

      field :election, Decidim::Elections::ElectionType, null: true do
        argument :id, GraphQL::Types::ID, required: true
      end

      def election(**args)
        ElectionsTypeHelper.base_scope(object).find_by(id: args[:id])
      end
    end

    module ElectionsTypeHelper
      def self.base_scope(component)
        Election.where(component:).where.not(published_at: nil)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
decidim-elections-0.28.5 lib/decidim/api/elections_type.rb
decidim-elections-0.28.4 lib/decidim/api/elections_type.rb
decidim-elections-0.28.3 lib/decidim/api/elections_type.rb
decidim-elections-0.28.2 lib/decidim/api/elections_type.rb
decidim-elections-0.28.1 lib/decidim/api/elections_type.rb
decidim-elections-0.28.0 lib/decidim/api/elections_type.rb
decidim-elections-0.28.0.rc5 lib/decidim/api/elections_type.rb
decidim-elections-0.28.0.rc4 lib/decidim/api/elections_type.rb