Skip to content

Commit 8701768

Browse files
authored
Merge pull request #1050 from alphagov/suppress-rummager-errors
Catch rummager errors for navigation
2 parents f9c478a + 29f4011 commit 8701768

File tree

5 files changed

+22
-1
lines changed

5 files changed

+22
-1
lines changed

app/lib/services.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def self.content_store
1313
end
1414

1515
def self.rummager
16-
@rummager ||= GdsApi::Rummager.new(Plek.new.find("rummager"))
16+
@rummager ||= GdsApi::Rummager.new(Plek.new.find("rummager"),
17+
timeout: 2)
1718
end
1819
end

app/services/most_popular_content.rb

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ def self.fetch(content_ids:, current_path:, filters:)
1818

1919
def fetch
2020
search_response["results"]
21+
rescue GdsApi::HTTPErrorResponse => e
22+
GovukStatsd.increment("govuk_content_pages.most_popular.#{e.class.name.demodulize.downcase}")
23+
[]
2124
end
2225

2326
private

app/services/most_recent_content.rb

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ def self.fetch(content_ids:, current_path:, filters:)
1414

1515
def fetch
1616
search_response["results"]
17+
rescue GdsApi::HTTPErrorResponse => e
18+
GovukStatsd.increment("govuk_content_pages.most_recent.#{e.class.name.demodulize.downcase}")
19+
[]
1720
end
1821

1922
private

test/services/most_popular_content_test.rb

+7
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ def taxon_content_ids
3232
assert_equal(results.count, 2)
3333
end
3434

35+
test 'catches api errors' do
36+
Services.rummager.stubs(:search).raises(GdsApi::HTTPErrorResponse.new(500))
37+
results = most_popular_content.fetch
38+
39+
assert_equal(results, [])
40+
end
41+
3542
test 'starts from the first page' do
3643
assert_includes_params(start: 0) do
3744
most_popular_content.fetch

test/services/most_recent_content_test.rb

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ def most_recent_content
1313
)
1414
end
1515

16+
test 'catches api errors' do
17+
Services.rummager.stubs(:search).raises(GdsApi::HTTPErrorResponse.new(500))
18+
results = most_recent_content.fetch
19+
20+
assert_equal(results, [])
21+
end
22+
1623
def taxon_content_ids
1724
['c3c860fc-a271-4114-b512-1c48c0f82564', 'ff0e8e1f-4dea-42ff-b1d5-f1ae37807af2']
1825
end

0 commit comments

Comments
 (0)