class Decidim::Core::ComponentFinderBase
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
Attributes
model_class[R]
Public Class Methods
new(model_class:)
click to toggle source
# File lib/decidim/api/functions/component_finder_base.rb, line 20 def initialize(model_class:) @model_class = model_class end
Public Instance Methods
call(component, args, _ctx)
click to toggle source
# File lib/decidim/api/functions/component_finder_base.rb, line 24 def call(component, args, _ctx) @query = { component: component } args.keys.each do |key| @query[key] = args[key] end query_scope.find_by(@query) end
query_scope()
click to toggle source
By default, any model in its defaul scope Particular implementations may restrict this by adding additional constrains
# File lib/decidim/api/functions/component_finder_base.rb, line 35 def query_scope model_class end