Sha256: 98ec187392989fccbb925c2292c3386674c1ddfaa463d7eab13a460fd959348e

Contents?: true

Size: 1.69 KB

Versions: 37

Compression:

Stored size: 1.69 KB

Contents

# frozen_string_literal: true

module Decidim
  module Conferences
    # This module's job is to extend the API with custom fields related to
    # decidim-assemblies.
    module QueryExtensions
      # Public: Extends a type with `decidim-assemblies`'s fields.
      #
      # type - A GraphQL::BaseType to extend.
      #
      # Returns nothing.
      def self.included(type)
        type.field :conferences,
                   [Decidim::Conferences::ConferenceType],
                   null: true,
                   description: "Lists all conferences" do
          argument :filter, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputFilter, "This argument lets you filter the results", required: false
          argument :order, Decidim::ParticipatoryProcesses::ParticipatoryProcessInputSort, "This argument lets you order the results", required: false
        end

        type.field :conference,
                   Decidim::Conferences::ConferenceType,
                   null: true,
                   description: "Finds a conference" do
          argument :id, GraphQL::Types::ID, "The ID of the participatory space", required: false
        end
      end

      def conferences(filter: {}, order: {})
        manifest = Decidim.participatory_space_manifests.select { |m| m.name == :conferences }.first

        Decidim::Core::ParticipatorySpaceListBase.new(manifest: manifest).call(object, { filter: filter, order: order }, context)
      end

      def conference(id: nil)
        manifest = Decidim.participatory_space_manifests.select { |m| m.name == :conferences }.first

        Decidim::Core::ParticipatorySpaceFinderBase.new(manifest: manifest).call(object, { id: id }, context)
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
decidim-conferences-0.27.9 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.8 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.7 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.6 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.10 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.9 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.5 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.8 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.4 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.3 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.7 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.5 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.2 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.1 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.4 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.0 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.3 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.0.rc2 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.27.0.rc1 lib/decidim/conferences/query_extensions.rb
decidim-conferences-0.26.2 lib/decidim/conferences/query_extensions.rb