Class: Decidim::Core::ParticipatorySpaceListBase
- Inherits:
 - 
      Object
      
        
- Object
 - Decidim::Core::ParticipatorySpaceListBase
 
 
- Includes:
 - NeedsApiDefaultOrder, NeedsApiFilterAndOrder
 
- Defined in:
 - lib/decidim/api/functions/participatory_space_list_base.rb
 
Overview
An abstract base class resolver for the GraphQL endpoint for listing participatory spaces Inherit from this class and add search arguments to create list-finders participatory classes as is shown in ParticipatorySpaceList + info: github.com/rmosolgo/graphql-ruby/blob/v1.6.8/guides/fields/function.md
Instance Attribute Summary collapse
- 
  
    
      #manifest  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute manifest.
 
Instance Method Summary collapse
- #call(_obj, args, ctx) ⇒ Object
 - 
  
    
      #initialize(manifest:)  ⇒ ParticipatorySpaceListBase 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of ParticipatorySpaceListBase.
 - 
  
    
      #model_class  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
lazy instantiation of the class.
 
Methods included from NeedsApiFilterAndOrder
#add_filter_keys, #add_order_keys
Constructor Details
#initialize(manifest:) ⇒ ParticipatorySpaceListBase
Returns a new instance of ParticipatorySpaceListBase.
      15 16 17  | 
    
      # File 'lib/decidim/api/functions/participatory_space_list_base.rb', line 15 def initialize(manifest:) @manifest = manifest end  | 
  
Instance Attribute Details
#manifest ⇒ Object (readonly)
Returns the value of attribute manifest.
      13 14 15  | 
    
      # File 'lib/decidim/api/functions/participatory_space_list_base.rb', line 13 def manifest @manifest end  | 
  
Instance Method Details
#call(_obj, args, ctx) ⇒ Object
      24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42  | 
    
      # File 'lib/decidim/api/functions/participatory_space_list_base.rb', line 24 def call(_obj, args, ctx) base_query = model_class.where( organization: ctx[:current_organization] ) @query = if ctx[:current_user]&.admin? base_query elsif base_query.respond_to?(:visible_for) base_query.visible_for(ctx[:current_user]) else base_query.public_spaces end add_filter_keys(args[:filter]) add_order_keys(args[:order].to_h) add_default_order @query end  | 
  
#model_class ⇒ Object
lazy instantiation of the class
      20 21 22  | 
    
      # File 'lib/decidim/api/functions/participatory_space_list_base.rb', line 20 def model_class @model_class ||= manifest.model_class_name.constantize end  |