Module: Queries::Concerns::Depictions
- Extended by:
- ActiveSupport::Concern
- Included in:
- Queries::CollectingEvent::Filter, Queries::Content::Filter, Descriptor::Filter, Observation::Filter, Otu::Filter
- Defined in:
- lib/queries/concerns/depictions.rb
Overview
Helpers and facets for queries that reference Depictions/Images
Class Method Summary collapse
Instance Method Summary collapse
-
#image_id_facet ⇒ Object
All sources that match all _and ids OR any OR id.
- #image_query_facet ⇒ Object
- #images_facet ⇒ Object
- #set_depiction_params(params) ⇒ Object
Class Method Details
.merge_clauses ⇒ Object
63 64 65 66 67 68 69 |
# File 'lib/queries/concerns/depictions.rb', line 63 def self.merge_clauses [ :image_query_facet, :image_id_facet, :images_facet ] end |
.params ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/queries/concerns/depictions.rb', line 6 def self.params [ :image_id, :images, # :depictions ? image_id: [] ] end |
Instance Method Details
#image_id_facet ⇒ Object
Returns all sources that match all _and ids OR any OR id.
37 38 39 40 |
# File 'lib/queries/concerns/depictions.rb', line 37 def image_id_facet return nil if image_id.empty? referenced_klass.joins(:depictions).where(depictions: {image_id: image_id}) end |
#image_query_facet ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/queries/concerns/depictions.rb', line 51 def image_query_facet return nil if image_query.nil? s = 'WITH query_images AS (' + image_query.all.to_sql + ')' s << ' ' + referenced_klass .joins(:depictions) .joins('JOIN query_images as query_images1 on depictions.image_id = query_images1.id') .to_sql referenced_klass.from('(' + s + ') as ' + referenced_klass.name.tableize) end |
#images_facet ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/queries/concerns/depictions.rb', line 42 def images_facet return nil if images.nil? if images return referenced_klass.joins(:depictions).distinct else return referenced_klass.where.missing(:depictions) end end |
#set_depiction_params(params) ⇒ Object
30 31 32 33 |
# File 'lib/queries/concerns/depictions.rb', line 30 def set_depiction_params(params) @image_id = params[:image_id] @images = boolean_param(params, :images) end |