Module: Algolia::Search::FacetFilters
- Defined in:
- lib/algolia/models/search/facet_filters.rb
Overview
Filter the search by facet values, so that only records with the same facet values are retrieved. Prefer using the filters parameter, which supports all filter types and combinations with boolean operators. - [filter1, filter2] is interpreted as filter1 AND filter2. - [[filter1, filter2], filter3] is interpreted as filter1 OR filter2 AND filter3. - facet:-value is interpreted as NOT facet:value. While it's best to avoid attributes that start with a -, you can still filter them by escaping with a backslash: facet:\\-value.
Class Method Summary collapse
-
.build(data) ⇒ Object
Builds the object.
-
.openapi_one_of ⇒ Object
List of class defined in oneOf (OpenAPI v3).
Class Method Details
.build(data) ⇒ Object
Builds the object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/algolia/models/search/facet_filters.rb', line 24 def build(data) # Go through the list of oneOf items and attempt to identify the appropriate one. # Note: # - We do not attempt to check whether exactly one item matches. # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 }) # due to the way the deserialization is made in the base_object template (it just casts without verifying). # - TODO: scalar values are de facto behaving as if they were nullable. # - TODO: logging when debugging is set. openapi_one_of.each do |klass| begin # "nullable: true" next if klass == :AnyType typed_data = find_and_cast_into_type(klass, data) return typed_data if typed_data # rescue all errors so we keep iterating even if the current item lookup raises rescue end end openapi_one_of.include?(:AnyType) ? data : nil end |
.openapi_one_of ⇒ Object
List of class defined in oneOf (OpenAPI v3)
14 15 16 17 18 19 |
# File 'lib/algolia/models/search/facet_filters.rb', line 14 def openapi_one_of [ :"Array<FacetFilters>", :"String" ] end |