From c16e3aaca3b6fb8785906d11436d509a8ac16175 Mon Sep 17 00:00:00 2001 From: andy-collon Date: Mon, 8 Jan 2024 10:59:53 +0000 Subject: [PATCH 1/3] Replaces rest-client with httparty --- Gemfile | 2 ++ Gemfile.lock | 4 ++++ app/lib/remote_csv.rb | 2 +- app/services/bulk_tagging/fetch_remote_data.rb | 9 +++++++-- spec/lib/remote_csv_spec.rb | 4 ++-- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 938184701..27b09b5ef 100644 --- a/Gemfile +++ b/Gemfile @@ -44,3 +44,5 @@ group :test do gem "govuk_test" gem "webmock" end + +gem "httparty", "~> 0.21.0" diff --git a/Gemfile.lock b/Gemfile.lock index 9df1c64bb..d5da93829 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -189,6 +189,9 @@ GEM http-accept (1.7.0) http-cookie (1.0.5) domain_name (~> 0.5) + httparty (0.21.0) + mini_mime (>= 1.0.0) + multi_xml (>= 0.5.2) i18n (1.14.1) concurrent-ruby (~> 1.0) io-console (0.6.0) @@ -703,6 +706,7 @@ DEPENDENCIES govuk_sidekiq govuk_test hashdiff + httparty (~> 0.21.0) jquery-ui-rails kaminari pg diff --git a/app/lib/remote_csv.rb b/app/lib/remote_csv.rb index 2cd4999e2..6bf186d04 100644 --- a/app/lib/remote_csv.rb +++ b/app/lib/remote_csv.rb @@ -29,6 +29,6 @@ def sheet_data end def response - RestClient.get @csv_url + HTTParty.get @csv_url end end diff --git a/app/services/bulk_tagging/fetch_remote_data.rb b/app/services/bulk_tagging/fetch_remote_data.rb index df6bcd116..30bd31a5f 100644 --- a/app/services/bulk_tagging/fetch_remote_data.rb +++ b/app/services/bulk_tagging/fetch_remote_data.rb @@ -18,7 +18,7 @@ def call response process_spreadsheet errors - rescue RestClient::Exception => e + rescue StandardError => e GovukError.notify(e) [spreadsheet_download_error] end @@ -57,7 +57,12 @@ def spreadsheet_download_error end def response - @response ||= RestClient.get tagging_spreadsheet.url + separate = HTTParty.get tagging_spreadsheet.url + if separate.code == 200 + @response = separate + else + raise StandardError, "error code from httparty" + end end def sheet_data diff --git a/spec/lib/remote_csv_spec.rb b/spec/lib/remote_csv_spec.rb index 6487c658c..6af5414d8 100644 --- a/spec/lib/remote_csv_spec.rb +++ b/spec/lib/remote_csv_spec.rb @@ -25,14 +25,14 @@ it "raises an error when the URI is invalid" do expect { described_class.new("not a URL").rows_with_headers } - .to raise_error RemoteCsv::ParsingError, 'URI::InvalidURIError: bad URI(is not URI?): "http://not a URL"' + .to raise_error RemoteCsv::ParsingError, 'URI::InvalidURIError: bad URI(is not URI?): "not a URL"' end it "raises an error when the connection failed" do stub_request(:get, csv_url).to_timeout expect { described_class.new(csv_url).rows_with_headers } - .to raise_error RemoteCsv::ParsingError, "RestClient::Exceptions::OpenTimeout: Timed out connecting to server" + .to raise_error RemoteCsv::ParsingError, "Net::OpenTimeout: execution expired" end it "raises an error when the CSV is malformed" do From 745a179d754bffd1a5a9cd41a1545587607ad90a Mon Sep 17 00:00:00 2001 From: andy-collon Date: Mon, 8 Jan 2024 11:27:26 +0000 Subject: [PATCH 2/3] Renamed temp variable --- app/services/bulk_tagging/fetch_remote_data.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/bulk_tagging/fetch_remote_data.rb b/app/services/bulk_tagging/fetch_remote_data.rb index 30bd31a5f..07c27b944 100644 --- a/app/services/bulk_tagging/fetch_remote_data.rb +++ b/app/services/bulk_tagging/fetch_remote_data.rb @@ -57,9 +57,9 @@ def spreadsheet_download_error end def response - separate = HTTParty.get tagging_spreadsheet.url - if separate.code == 200 - @response = separate + response = HTTParty.get tagging_spreadsheet.url + if response.code == 200 + @response = response else raise StandardError, "error code from httparty" end From e11ffeb89a24d5981a0df5eaa437a545d6960749 Mon Sep 17 00:00:00 2001 From: andy-collon Date: Mon, 8 Jan 2024 11:45:35 +0000 Subject: [PATCH 3/3] Use the instance variable to check http code --- app/services/bulk_tagging/fetch_remote_data.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/bulk_tagging/fetch_remote_data.rb b/app/services/bulk_tagging/fetch_remote_data.rb index 07c27b944..a31084980 100644 --- a/app/services/bulk_tagging/fetch_remote_data.rb +++ b/app/services/bulk_tagging/fetch_remote_data.rb @@ -57,9 +57,9 @@ def spreadsheet_download_error end def response - response = HTTParty.get tagging_spreadsheet.url - if response.code == 200 - @response = response + @response = HTTParty.get tagging_spreadsheet.url + if @response.code == 200 + @response else raise StandardError, "error code from httparty" end