Skip to content

Commit fafb3a6

Browse files
committed
check for deeper nesting of buckets
1 parent 3dd6608 commit fafb3a6

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

app/services/search_item_res.rb

+15-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ def build_response
1818
# strip out only the fields for the item response
1919
items = combine_highlights
2020
facets = reformat_facets
21-
2221
{
2322
"code" => 200,
2423
"count" => count,
@@ -89,8 +88,7 @@ def reformat_facets
8988
facets = {}
9089
raw_facets.each do |field, info|
9190
facets[field] = {}
92-
# nested fields do not have buckets at this level of response structure
93-
buckets = info.key?("buckets") ? info["buckets"] : info.dig(field, "buckets")
91+
buckets = get_buckets(info, field)
9492
if buckets
9593
buckets.each { |b| format_bucket_value(facets, field, b) }
9694
else
@@ -110,4 +108,18 @@ def remove_nonword_chars(term)
110108
transliterated.gsub(/<\/?(?:em|strong|u)>|\W/, "").downcase
111109
end
112110

111+
def get_buckets(info, field)
112+
buckets = nil
113+
# ordinary facet
114+
if info.key?("buckets")
115+
buckets = info["buckets"]
116+
# nested facet
117+
elsif info.dig(field, "buckets")
118+
buckets = info.dig(field, "buckets")
119+
# filtered facet
120+
else
121+
buckets = info.dig(field, field, "buckets")
122+
end
123+
buckets
124+
end
113125
end

0 commit comments

Comments
 (0)