From 413ee7a6d350d266590456ba4650ae1e0f228a70 Mon Sep 17 00:00:00 2001 From: erwanlr Date: Fri, 3 Apr 2015 16:22:28 +0100 Subject: [PATCH] Adds the HttpError exception - Fixes #792 --- lib/common/db_updater.rb | 6 ++---- lib/common/errors.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 lib/common/errors.rb diff --git a/lib/common/db_updater.rb b/lib/common/db_updater.rb index 9617e8f3..a40a7b09 100644 --- a/lib/common/db_updater.rb +++ b/lib/common/db_updater.rb @@ -36,8 +36,7 @@ class DbUpdater url = "#{remote_file_url(filename)}.sha512" res = Browser.get(url, request_params) - additional_text = res.code == 0 ? res.return_message : "return code #{res.code}" - fail "Unable to get #{url} (#{additional_text})" unless res.code == 200 + fail DownloadError, res unless res.code == 200 res.body end @@ -73,8 +72,7 @@ class DbUpdater file_url = remote_file_url(filename) res = Browser.get(file_url, request_params) - additional_text = res.code == 0 ? res.return_message : "return code #{res.code}" - fail "Error while downloading #{file_url} (#{additional_text})" unless res.code == 200 + fail DownloadError, res unless res.code == 200 File.open(file_path, 'wb') { |f| f.write(res.body) } local_file_checksum(filename) diff --git a/lib/common/errors.rb b/lib/common/errors.rb new file mode 100644 index 00000000..29087e95 --- /dev/null +++ b/lib/common/errors.rb @@ -0,0 +1,27 @@ + +# HTTP Error +class HttpError < StandardError + attr_reader :response + + # @param [ Typhoeus::Response ] res + def initialize(response) + @response = response + end + + def failure_details + msg = response.effective_url + msg += response.code == 0 ? " (#{response.return_message})" : " (status: #{response.code})" + msg + end + + def message + "HTTP Error: #{failure_details}" + end +end + +# Used in the Updater +class DownloadError < HttpError + def message + "Unable to get #{failure_details}" + end +end