Sha256: 0e9b7078b30344e6a8022629dea27c74654e8b53f19f3e7ecc1ce39660dc086f
Contents?: true
Size: 1.1 KB
Versions: 8
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true module Decidim module Core # An abstract class with the logic for the GraphQL endpoint for a single component to be searchable. # Normal components (such as Proposal) can inherit from this class and just # add the needed search arguments # # Usually something like: # # class ProposalFinderHelper < Decidim::Core::ComponentFinderBase # argument :id, !types.ID, "The ID of the proposal" # end # # For an example check # decidim-proposals/app/types/decidim/proposals/proposals_type.rb class ComponentFinderBase attr_reader :model_class def initialize(model_class:) @model_class = model_class end def call(component, args, _ctx) @query = { component: } args.keys.each do |key| @query[key] = args[key] end query_scope.find_by(@query) end # By default, any model in its defaul scope # Particular implementations may restrict this by adding # additional constrains def query_scope model_class end end end end
Version data entries
8 entries across 8 versions & 1 rubygems