Skip to content
This repository has been archived by the owner on Jun 13, 2023. It is now read-only.

Commit

Permalink
Handle empty time_travel_response; Resolves #41.
Browse files Browse the repository at this point in the history
* Adds conditional to handle empty time_travel_response.
* Uses wayback_date instead of crawl_date; less logic.
  • Loading branch information
ruebot committed Nov 13, 2017
1 parent c597434 commit 9ff0054
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 8 deletions.
4 changes: 4 additions & 0 deletions .rubocop.yml
Expand Up @@ -67,3 +67,7 @@ Style/Documentation:

Bundler/DuplicatedGem:
Enabled: false

Lint/UselessAssignment:
Exclude:
- 'app/models/concerns/warclight/solr_document.rb' #Come back to this later
16 changes: 9 additions & 7 deletions app/models/concerns/warclight/solr_document.rb
Expand Up @@ -8,15 +8,17 @@ module SolrDocument

def replay_link
time_travel_base_url = 'http://timetravel.mementoweb.org/api/json/'
time_travel_time_format = '%Y%m%d%H%M%S'
time_travel_time = (Time.parse(first(:crawl_date)).strftime time_travel_time_format).to_s
time_travel_request_url = time_travel_base_url + time_travel_time + '/' + first(:url).to_s
time_travel_request_url = time_travel_base_url + first(:wayback_date).to_s + '/' + first(:url).to_s
time_travel_request = URI(time_travel_request_url)
time_travel_response = Net::HTTP.get(time_travel_request)
time_travel_response_json = JSON.parse(time_travel_response)
replay_url = time_travel_response_json['mementos']['closest']['uri'][0]
replay_url_link = '<a href="' + "#{replay_url}" '" target="_blank">'"#{replay_url}"'</a> 🔗'
replay_url_link.html_safe
if time_travel_response.present?
time_travel_response_json = JSON.parse(time_travel_response)
replay_url = time_travel_response_json['mementos']['closest']['uri'][0]
replay_url_link = '<a href="' + "#{replay_url}" '" target="_blank">'"#{replay_url}"'</a> 🔗'
replay_url_link.html_safe
else
replay_url = 'Not Available.'
end
end
end
end
12 changes: 11 additions & 1 deletion spec/models/concerns/warclight/solr_document_spec.rb
Expand Up @@ -7,11 +7,21 @@

describe '#replay_link' do
let(:document) do
SolrDocument.new(crawl_date: '2015-01-13T16:36:01Z', url: 'http://www.library.yorku.ca/cms/steacie/about-the-library/hackfest/')
SolrDocument.new(wayback_date: '20150113163601', url: 'http://www.library.yorku.ca/cms/steacie/about-the-library/hackfest/')
end

it 'writes a replay url based on memento time travel response' do
expect(document.replay_link).to eq '<a href="https://digital.library.yorku.ca/wayback/20150113163601/http://www.library.yorku.ca/cms/steacie/about-the-library/hackfest/" target="_blank">https://digital.library.yorku.ca/wayback/20150113163601/http://www.library.yorku.ca/cms/steacie/about-the-library/hackfest/</a> 🔗'
end

context 'when time_travel_response.empty?' do
let(:document) do
SolrDocument.new(wayback_date: '20150113163601', url: 'http://www.library.yorku.ca/cms/steacie/about-the-library/hackfest/FAIL')
end

it 'writes a replay url that is "Not Available."' do
expect(document.replay_link).to eq 'Not Available.'
end
end
end
end

0 comments on commit 9ff0054

Please sign in to comment.