From a6d9b9db5e870c8a26aa1ed46e77ca20d4144fa4 Mon Sep 17 00:00:00 2001 From: Monique Rio Date: Wed, 15 Nov 2023 12:19:15 -0500 Subject: [PATCH 01/10] made author and subject independent --- .gitignore | 1 + env.example | 3 ++- lib/models/author_list.rb | 2 +- lib/services.rb | 4 ++++ spec/spec_helper.rb | 1 + 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 37db4f1..7aa4caa 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ node_modules/ public/browse.css .bash_history .cache/ +.solargraph.yml diff --git a/env.example b/env.example index 2910fcb..260c22e 100644 --- a/env.example +++ b/env.example @@ -2,7 +2,8 @@ BIBLIO_SOLR='http://biblio-server/solr' AUTHOR_SOLR='http://catalog-solr-server/solr' BROWSE_SOLR='http://catalog-solr-server/solr' CALLNUMBER_CORE='callnumbers' -AUTHORITY_CORE='authors' +AUTHORITY_CORE='authority_core' +AUTHOR_COLLECTION='author_collection' SOLR_USER='solr' SOLR_PASSWORD='SolrRocks' SOLR_CLOUD_ON='false' diff --git a/lib/models/author_list.rb b/lib/models/author_list.rb index bddb652..07a640a 100644 --- a/lib/models/author_list.rb +++ b/lib/models/author_list.rb @@ -6,7 +6,7 @@ def self.for(direction:, reference_id:, num_rows_to_display:, original_reference num_rows_to_display: num_rows_to_display, original_reference: original_reference, banner_reference: banner_reference, - browse_solr_client: BrowseSolrClient.new(solr_url: S.author_solr, core: S.authority_core, match_field: "term", q: "browse_field:name", solr_cloud_on: S.solr_cloud_on?) + browse_solr_client: BrowseSolrClient.new(solr_url: S.author_solr, core: S.author_collection, match_field: "term", q: "browse_field:name", solr_cloud_on: S.solr_cloud_on?) ) new(browse_list: browse_list) diff --git a/lib/services.rb b/lib/services.rb index 832f477..f899c1b 100644 --- a/lib/services.rb +++ b/lib/services.rb @@ -11,6 +11,10 @@ ENV["AUTHOR_SOLR"] || ENV["BROWSE_SOLR"] end +S.register(:author_collection) do + ENV["AUTHOR_COLLECTION"] || ENV["AUTHORITY_CORE"] +end + [ "BROWSE_SOLR", "BIBLIO_SOLR", "SOLR_USER", "SOLR_PASSWORD", "CALLNUMBER_CORE", "AUTHORITY_CORE" diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 98f72ef..73b6bf0 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -29,6 +29,7 @@ def app = Sinatra::Application # set up dependencies S.register(:author_solr) { S.browse_solr } +S.register(:author_collection) { S.authority_core } S.register(:solr_cloud_on?) { false } RSpec.configure do |config| From b6c659e64ad6053f766e3fdb5d0260bf33a5d100 Mon Sep 17 00:00:00 2001 From: Monique Rio Date: Thu, 7 Dec 2023 14:38:41 -0500 Subject: [PATCH 02/10] subject has optional solrcloud --- compose.yml | 6 ++++++ env.example | 6 +++--- lib/models/author_list.rb | 2 +- lib/models/subject_list.rb | 2 +- lib/services.rb | 12 ++++++------ lib/utilities/browse_solr_client.rb | 4 ++-- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/compose.yml b/compose.yml index c07ed1c..e8766a8 100644 --- a/compose.yml +++ b/compose.yml @@ -14,6 +14,12 @@ services: env_file: - .env - env.development + networks: + - mynetwork volumes: gem_cache: + +networks: + mynetwork: + external: true diff --git a/env.example b/env.example index 260c22e..9f2fe44 100644 --- a/env.example +++ b/env.example @@ -1,9 +1,9 @@ BIBLIO_SOLR='http://biblio-server/solr' -AUTHOR_SOLR='http://catalog-solr-server/solr' +SOLRCLOUD_URL='http://solr-cloud-server/solr' BROWSE_SOLR='http://catalog-solr-server/solr' CALLNUMBER_CORE='callnumbers' AUTHORITY_CORE='authority_core' -AUTHOR_COLLECTION='author_collection' +AUTHORITY_COLLECTION='authority_collection' SOLR_USER='solr' SOLR_PASSWORD='SolrRocks' -SOLR_CLOUD_ON='false' +SOLRCLOUD_ON='false' diff --git a/lib/models/author_list.rb b/lib/models/author_list.rb index 07a640a..c9ade37 100644 --- a/lib/models/author_list.rb +++ b/lib/models/author_list.rb @@ -6,7 +6,7 @@ def self.for(direction:, reference_id:, num_rows_to_display:, original_reference num_rows_to_display: num_rows_to_display, original_reference: original_reference, banner_reference: banner_reference, - browse_solr_client: BrowseSolrClient.new(solr_url: S.author_solr, core: S.author_collection, match_field: "term", q: "browse_field:name", solr_cloud_on: S.solr_cloud_on?) + browse_solr_client: BrowseSolrClient.new(solr_url: S.solrcloud_url, core: S.authority_collection, match_field: "term", q: "browse_field:name", solrcloud_on: S.solrcloud_on?) ) new(browse_list: browse_list) diff --git a/lib/models/subject_list.rb b/lib/models/subject_list.rb index bbd21a5..1c92ba9 100644 --- a/lib/models/subject_list.rb +++ b/lib/models/subject_list.rb @@ -6,7 +6,7 @@ def self.for(direction:, reference_id:, num_rows_to_display:, original_reference num_rows_to_display: num_rows_to_display, original_reference: original_reference, banner_reference: banner_reference, - browse_solr_client: BrowseSolrClient.new(core: ENV.fetch("AUTHORITY_CORE"), match_field: "term", q: "browse_field:subject") + browse_solr_client: BrowseSolrClient.new(solr_url: S.solrcloud_url, core: S.authority_collection, match_field: "term", q: "browse_field:subject", solrcloud_on: S.solrcloud_on?) ) new(browse_list: browse_list) diff --git a/lib/services.rb b/lib/services.rb index f899c1b..50d3494 100644 --- a/lib/services.rb +++ b/lib/services.rb @@ -3,16 +3,16 @@ Services = Canister.new S = Services -S.register(:solr_cloud_on?) do - ENV["SOLR_CLOUD_ON"] == "true" +S.register(:solrcloud_on?) do + ENV["SOLRCLOUD_ON"] == "true" end -S.register(:author_solr) do - ENV["AUTHOR_SOLR"] || ENV["BROWSE_SOLR"] +S.register(:authority_collection) do + S.solrcloud_on? ? ENV["AUTHORITY_COLLECTION"] : ENV["AUTHORITY_CORE"] end -S.register(:author_collection) do - ENV["AUTHOR_COLLECTION"] || ENV["AUTHORITY_CORE"] +S.register(:solrcloud_url) do + S.solrcloud_on? ? ENV["SOLRCLOUD_URL"] : ENV["BROWSE_SOLR"] end [ diff --git a/lib/utilities/browse_solr_client.rb b/lib/utilities/browse_solr_client.rb index 9f9ae0a..3399f02 100644 --- a/lib/utilities/browse_solr_client.rb +++ b/lib/utilities/browse_solr_client.rb @@ -1,12 +1,12 @@ require "faraday" class BrowseSolrClient - def initialize(solr_url: ENV.fetch("BROWSE_SOLR"), core: ENV.fetch("CALLNUMBER_CORE"), match_field: "callnumber", q: "*:*", solr_cloud_on: false) + def initialize(solr_url: ENV.fetch("BROWSE_SOLR"), core: ENV.fetch("CALLNUMBER_CORE"), match_field: "callnumber", q: "*:*", solrcloud_on: false) @conn = Faraday.new( url: solr_url ) do |f| f.request :json - f.request :authorization, :basic, ENV["SOLR_USER"], ENV["SOLR_PASSWORD"] if solr_cloud_on + f.request :authorization, :basic, ENV["SOLR_USER"], ENV["SOLR_PASSWORD"] if solrcloud_on # f.request :retry, {max: 1, retry_statuses: [500]} f.response :json end From 54d2345e67b26a8b68cfddceec8ab4a0a0259222 Mon Sep 17 00:00:00 2001 From: Monique Rio Date: Thu, 14 Dec 2023 14:52:28 -0500 Subject: [PATCH 03/10] get callnumbers to work with solrcloud --- env.example | 3 ++- lib/utilities/browse_solr_client.rb | 2 +- spec/requests_spec.rb | 4 ++-- spec/spec_helper.rb | 3 ++- spec/utilities/browse_solr_client_spec.rb | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/env.example b/env.example index 9f2fe44..8085a6e 100644 --- a/env.example +++ b/env.example @@ -2,8 +2,9 @@ BIBLIO_SOLR='http://biblio-server/solr' SOLRCLOUD_URL='http://solr-cloud-server/solr' BROWSE_SOLR='http://catalog-solr-server/solr' CALLNUMBER_CORE='callnumbers' +CALLNUMBER_COLLECTION='callnumbers' AUTHORITY_CORE='authority_core' AUTHORITY_COLLECTION='authority_collection' SOLR_USER='solr' SOLR_PASSWORD='SolrRocks' -SOLRCLOUD_ON='false' +SOLRCLOUD_ON='true' diff --git a/lib/utilities/browse_solr_client.rb b/lib/utilities/browse_solr_client.rb index 3399f02..d584432 100644 --- a/lib/utilities/browse_solr_client.rb +++ b/lib/utilities/browse_solr_client.rb @@ -1,7 +1,7 @@ require "faraday" class BrowseSolrClient - def initialize(solr_url: ENV.fetch("BROWSE_SOLR"), core: ENV.fetch("CALLNUMBER_CORE"), match_field: "callnumber", q: "*:*", solrcloud_on: false) + def initialize(solr_url: ENV.fetch("SOLRCLOUD_URL"), core: ENV.fetch("CALLNUMBER_COLLECTION"), match_field: "callnumber", q: "*:*", solrcloud_on: true) @conn = Faraday.new( url: solr_url ) do |f| diff --git a/spec/requests_spec.rb b/spec/requests_spec.rb index 94033c8..423643e 100644 --- a/spec/requests_spec.rb +++ b/spec/requests_spec.rb @@ -2,8 +2,8 @@ describe "requests" do include Rack::Test::Methods before(:each) do - @callnumbers_core = ENV.fetch("CALLNUMBER_CORE") - @authors_core = ENV.fetch("AUTHORITY_CORE") + @callnumbers_core = ENV.fetch("CALLNUMBER_COLLECTION") + @authors_core = ENV.fetch("AUTHORITY_COLLECTION") end context "get /" do it "has status OK" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 73b6bf0..2484920 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -126,9 +126,10 @@ def stub_solr_get_request(url:, output: "{}", status: 200, query: nil, no_return :accept => "*/*", "Accept-Encoding" => "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" } + req_attributes[:basic_auth] = [S.solr_user, S.solr_password] req_attributes[:query] = query unless query.nil? resp = {headers: {content_type: "application/json"}, status: status, body: output} - req = stub_request(:get, "#{ENV["BROWSE_SOLR"]}/#{url}").with(**req_attributes) + req = stub_request(:get, "#{S.solrcloud_url}/#{url}").with(**req_attributes) if no_return.nil? req.to_return(**resp) diff --git a/spec/utilities/browse_solr_client_spec.rb b/spec/utilities/browse_solr_client_spec.rb index 504646a..a1654a4 100644 --- a/spec/utilities/browse_solr_client_spec.rb +++ b/spec/utilities/browse_solr_client_spec.rb @@ -4,11 +4,11 @@ end context "#exact_matches" do it "returns an array of ids for an exact match" do - stub_solr_get_request(url: "#{ENV.fetch("CALLNUMBER_CORE")}/select", query: hash_including({fq: 'callnumber:"Thing"'}), output: fixture("biblio_results.json")) + stub_solr_get_request(url: "#{ENV.fetch("CALLNUMBER_COLLECTION")}/select", query: hash_including({fq: 'callnumber:"Thing"'}), output: fixture("biblio_results.json")) expect(subject.exact_matches(value: "Thing")).to eq(["990059013360106381", "990011613060106381", "990085202960106381", "990155473530106381", "990017586110106381"]) end it "returns an empty errary if the solr request fails" do - stub_solr_get_request(url: "#{ENV.fetch("CALLNUMBER_CORE")}/select", query: hash_including({fq: 'callnumber:"Thing"'}), no_return: true).to_timeout + stub_solr_get_request(url: "#{ENV.fetch("CALLNUMBER_COLLECTION")}/select", query: hash_including({fq: 'callnumber:"Thing"'}), no_return: true).to_timeout expect(subject.exact_matches(value: "Thing")).to eq([]) end end From 66032c6fb4ca1d0a1742d25e9bd0a38f78463aa5 Mon Sep 17 00:00:00 2001 From: Monique Rio Date: Fri, 15 Dec 2023 09:29:25 -0500 Subject: [PATCH 04/10] normalized solr_url; replaced some ENV.fetch with Service calls --- env.example | 4 ++-- lib/models/author_list.rb | 2 +- lib/models/subject_list.rb | 2 +- lib/services.rb | 9 ++++++--- lib/utilities/browse_solr_client.rb | 4 ++-- spec/requests_spec.rb | 4 ++-- spec/spec_helper.rb | 4 ++-- spec/utilities/browse_solr_client_spec.rb | 4 ++-- 8 files changed, 18 insertions(+), 15 deletions(-) diff --git a/env.example b/env.example index 8085a6e..6553ba8 100644 --- a/env.example +++ b/env.example @@ -1,8 +1,8 @@ BIBLIO_SOLR='http://biblio-server/solr' SOLRCLOUD_URL='http://solr-cloud-server/solr' BROWSE_SOLR='http://catalog-solr-server/solr' -CALLNUMBER_CORE='callnumbers' -CALLNUMBER_COLLECTION='callnumbers' +CALLNUMBER_CORE='callnumber_browse' +CALL_NUMBER_COLLECTION='call_number_browse' AUTHORITY_CORE='authority_core' AUTHORITY_COLLECTION='authority_collection' SOLR_USER='solr' diff --git a/lib/models/author_list.rb b/lib/models/author_list.rb index c9ade37..cc1f8ab 100644 --- a/lib/models/author_list.rb +++ b/lib/models/author_list.rb @@ -6,7 +6,7 @@ def self.for(direction:, reference_id:, num_rows_to_display:, original_reference num_rows_to_display: num_rows_to_display, original_reference: original_reference, banner_reference: banner_reference, - browse_solr_client: BrowseSolrClient.new(solr_url: S.solrcloud_url, core: S.authority_collection, match_field: "term", q: "browse_field:name", solrcloud_on: S.solrcloud_on?) + browse_solr_client: BrowseSolrClient.new(solr_url: S.solr_url, core: S.authority_collection, match_field: "term", q: "browse_field:name") ) new(browse_list: browse_list) diff --git a/lib/models/subject_list.rb b/lib/models/subject_list.rb index 1c92ba9..a411a8d 100644 --- a/lib/models/subject_list.rb +++ b/lib/models/subject_list.rb @@ -6,7 +6,7 @@ def self.for(direction:, reference_id:, num_rows_to_display:, original_reference num_rows_to_display: num_rows_to_display, original_reference: original_reference, banner_reference: banner_reference, - browse_solr_client: BrowseSolrClient.new(solr_url: S.solrcloud_url, core: S.authority_collection, match_field: "term", q: "browse_field:subject", solrcloud_on: S.solrcloud_on?) + browse_solr_client: BrowseSolrClient.new(solr_url: S.solr_url, core: S.authority_collection, match_field: "term", q: "browse_field:subject") ) new(browse_list: browse_list) diff --git a/lib/services.rb b/lib/services.rb index 50d3494..4dd6417 100644 --- a/lib/services.rb +++ b/lib/services.rb @@ -7,17 +7,20 @@ ENV["SOLRCLOUD_ON"] == "true" end +S.register(:call_number_collection) do + S.solrcloud_on? ? ENV["CALL_NUMBER_COLLECTION"] : ENV["CALLNUMBER_CORE"] +end + S.register(:authority_collection) do S.solrcloud_on? ? ENV["AUTHORITY_COLLECTION"] : ENV["AUTHORITY_CORE"] end -S.register(:solrcloud_url) do +S.register(:solr_url) do S.solrcloud_on? ? ENV["SOLRCLOUD_URL"] : ENV["BROWSE_SOLR"] end [ - "BROWSE_SOLR", "BIBLIO_SOLR", "SOLR_USER", "SOLR_PASSWORD", - "CALLNUMBER_CORE", "AUTHORITY_CORE" + "BIBLIO_SOLR", "SOLR_USER", "SOLR_PASSWORD", "BASE_URL", "SEARCH_URL" ].each do |e| Services.register(e.downcase.to_sym) { ENV[e] } end diff --git a/lib/utilities/browse_solr_client.rb b/lib/utilities/browse_solr_client.rb index d584432..5a131e6 100644 --- a/lib/utilities/browse_solr_client.rb +++ b/lib/utilities/browse_solr_client.rb @@ -1,12 +1,12 @@ require "faraday" class BrowseSolrClient - def initialize(solr_url: ENV.fetch("SOLRCLOUD_URL"), core: ENV.fetch("CALLNUMBER_COLLECTION"), match_field: "callnumber", q: "*:*", solrcloud_on: true) + def initialize(solr_url: S.solr_url, core: S.call_number_collection, match_field: "callnumber", q: "*:*") @conn = Faraday.new( url: solr_url ) do |f| f.request :json - f.request :authorization, :basic, ENV["SOLR_USER"], ENV["SOLR_PASSWORD"] if solrcloud_on + f.request :authorization, :basic, S.solr_user, S.solr_password if S.solrcloud_on? # f.request :retry, {max: 1, retry_statuses: [500]} f.response :json end diff --git a/spec/requests_spec.rb b/spec/requests_spec.rb index 423643e..bd1092c 100644 --- a/spec/requests_spec.rb +++ b/spec/requests_spec.rb @@ -2,8 +2,8 @@ describe "requests" do include Rack::Test::Methods before(:each) do - @callnumbers_core = ENV.fetch("CALLNUMBER_COLLECTION") - @authors_core = ENV.fetch("AUTHORITY_COLLECTION") + @callnumbers_core = S.call_number_collection + @authors_core = S.authority_collection end context "get /" do it "has status OK" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2484920..e369452 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -129,7 +129,7 @@ def stub_solr_get_request(url:, output: "{}", status: 200, query: nil, no_return req_attributes[:basic_auth] = [S.solr_user, S.solr_password] req_attributes[:query] = query unless query.nil? resp = {headers: {content_type: "application/json"}, status: status, body: output} - req = stub_request(:get, "#{S.solrcloud_url}/#{url}").with(**req_attributes) + req = stub_request(:get, "#{S.solr_url}/#{url}").with(**req_attributes) if no_return.nil? req.to_return(**resp) @@ -146,7 +146,7 @@ def stub_biblio_get_request(url:, output: "{}", status: 200, query: nil, no_retu } req_attributes[:query] = query unless query.nil? resp = {headers: {content_type: "application/json"}, status: status, body: output} - req = stub_request(:get, "#{ENV["BIBLIO_SOLR"]}/#{url}").with(**req_attributes) + req = stub_request(:get, "#{S.biblio_solr}/#{url}").with(**req_attributes) if no_return.nil? req.to_return(**resp) else diff --git a/spec/utilities/browse_solr_client_spec.rb b/spec/utilities/browse_solr_client_spec.rb index a1654a4..8d0df28 100644 --- a/spec/utilities/browse_solr_client_spec.rb +++ b/spec/utilities/browse_solr_client_spec.rb @@ -4,11 +4,11 @@ end context "#exact_matches" do it "returns an array of ids for an exact match" do - stub_solr_get_request(url: "#{ENV.fetch("CALLNUMBER_COLLECTION")}/select", query: hash_including({fq: 'callnumber:"Thing"'}), output: fixture("biblio_results.json")) + stub_solr_get_request(url: "#{S.call_number_collection}/select", query: hash_including({fq: 'callnumber:"Thing"'}), output: fixture("biblio_results.json")) expect(subject.exact_matches(value: "Thing")).to eq(["990059013360106381", "990011613060106381", "990085202960106381", "990155473530106381", "990017586110106381"]) end it "returns an empty errary if the solr request fails" do - stub_solr_get_request(url: "#{ENV.fetch("CALLNUMBER_COLLECTION")}/select", query: hash_including({fq: 'callnumber:"Thing"'}), no_return: true).to_timeout + stub_solr_get_request(url: "#{S.call_number_collection}/select", query: hash_including({fq: 'callnumber:"Thing"'}), no_return: true).to_timeout expect(subject.exact_matches(value: "Thing")).to eq([]) end end From dfdfb75aaf5380f44b6242059cbc9ddecc7cfdf8 Mon Sep 17 00:00:00 2001 From: Monique Rio Date: Fri, 15 Dec 2023 09:38:10 -0500 Subject: [PATCH 05/10] switched out the rest of ENV.fetch with service calls --- catalog-browse.rb | 2 +- lib/models/author_item.rb | 2 +- lib/models/browse_list_presenter.rb | 2 +- lib/models/datastores.rb | 2 +- lib/models/search_dropdown.rb | 10 +++++----- lib/models/subject_item.rb | 2 +- spec/models/author_list_spec.rb | 4 ++-- spec/models/callnumber_list_spec.rb | 4 ++-- spec/models/datastores_spec.rb | 2 +- spec/models/search_dropdown_spec.rb | 2 +- spec/models/subject_list_spec.rb | 4 ++-- spec/requests_spec.rb | 2 +- views/layout.erb | 10 +++++----- views/layout/search_box.erb | 2 +- 14 files changed, 25 insertions(+), 25 deletions(-) diff --git a/catalog-browse.rb b/catalog-browse.rb index 8568769..4c3f7af 100644 --- a/catalog-browse.rb +++ b/catalog-browse.rb @@ -20,7 +20,7 @@ require_relative "lib/models/datastores" CatalogSolrClient.configure do |config| - config.solr_url = ENV.fetch("BIBLIO_SOLR") + config.solr_url = S.biblio_solr end get "/subject" do diff --git a/lib/models/author_item.rb b/lib/models/author_item.rb index 4c8d27e..a5147e0 100644 --- a/lib/models/author_item.rb +++ b/lib/models/author_item.rb @@ -85,7 +85,7 @@ def kind end def url - "#{ENV.fetch("BASE_URL")}/author?query=#{URI.encode_www_form_component(@author)}" + "#{S.base_url}/author?query=#{URI.encode_www_form_component(@author)}" end def heading_link? diff --git a/lib/models/browse_list_presenter.rb b/lib/models/browse_list_presenter.rb index 172154f..ff7bd10 100644 --- a/lib/models/browse_list_presenter.rb +++ b/lib/models/browse_list_presenter.rb @@ -60,6 +60,6 @@ def feedback_url private def nav_url(params) - "#{ENV.fetch("BASE_URL")}/#{path}?#{URI.encode_www_form(params)}" + "#{S.base_url}/#{path}?#{URI.encode_www_form(params)}" end end diff --git a/lib/models/datastores.rb b/lib/models/datastores.rb index 8ed97c7..1adeb14 100644 --- a/lib/models/datastores.rb +++ b/lib/models/datastores.rb @@ -23,7 +23,7 @@ def label end def href - ENV.fetch("SEARCH_URL") + @datastore[:href] + S.search_url + @datastore[:href] end def current? diff --git a/lib/models/search_dropdown.rb b/lib/models/search_dropdown.rb index 7bcb2a0..5157273 100644 --- a/lib/models/search_dropdown.rb +++ b/lib/models/search_dropdown.rb @@ -17,15 +17,15 @@ class SearchDropdown::Browse < SearchDropdown def url case @type when "browse_by_callnumber" - "#{ENV.fetch("BASE_URL")}/callnumber?query=#{encoded_query}" + "#{S.base_url}/callnumber?query=#{encoded_query}" when "browse_by_author" - "#{ENV.fetch("BASE_URL")}/author?query=#{encoded_query}" + "#{S.base_url}/author?query=#{encoded_query}" when "browse_by_subject" - "#{ENV.fetch("BASE_URL")}/subject?query=#{encoded_query}" + "#{S.base_url}/subject?query=#{encoded_query}" else # Users shouldn't be able to do this; # Send them back to search without their query if it happens. - ENV.fetch("SEARCH_URL") + S.search_url end end @@ -38,7 +38,7 @@ def encoded_query class SearchDropdown::Search < SearchDropdown def url - "#{ENV.fetch("SEARCH_URL")}/catalog?query=#{encoded_query}" + "#{S.search_url}/catalog?query=#{encoded_query}" end private diff --git a/lib/models/subject_item.rb b/lib/models/subject_item.rb index 5126152..76d134c 100644 --- a/lib/models/subject_item.rb +++ b/lib/models/subject_item.rb @@ -163,7 +163,7 @@ def record_text end def url - "#{ENV.fetch("BASE_URL")}/subject?query=#{URI.encode_www_form_component(@subject)}" + "#{S.base_url}/subject?query=#{URI.encode_www_form_component(@subject)}" end def heading_link? diff --git a/spec/models/author_list_spec.rb b/spec/models/author_list_spec.rb index 73f0b5b..685bdf3 100644 --- a/spec/models/author_list_spec.rb +++ b/spec/models/author_list_spec.rb @@ -36,13 +36,13 @@ context "#previous_url" do it "returns appropriate url" do allow(@browse_list).to receive(:previous_url_params).and_return({param_1: "value_1", param_2: "value_2"}) - expect(subject.previous_url).to eq("#{ENV.fetch("BASE_URL")}/author?param_1=value_1¶m_2=value_2") + expect(subject.previous_url).to eq("#{S.base_url}/author?param_1=value_1¶m_2=value_2") end end context "#next_url" do it "returns appropriate url" do allow(@browse_list).to receive(:next_url_params).and_return({param_1: "value_1", param_2: "value_2"}) - expect(subject.next_url).to eq("#{ENV.fetch("BASE_URL")}/author?param_1=value_1¶m_2=value_2") + expect(subject.next_url).to eq("#{S.base_url}/author?param_1=value_1¶m_2=value_2") end end end diff --git a/spec/models/callnumber_list_spec.rb b/spec/models/callnumber_list_spec.rb index 69a58ca..564ae48 100644 --- a/spec/models/callnumber_list_spec.rb +++ b/spec/models/callnumber_list_spec.rb @@ -36,13 +36,13 @@ context "#previous_url" do it "returns appropriate url" do allow(@browse_list).to receive(:previous_url_params).and_return({param_1: "value_1", param_2: "value_2"}) - expect(subject.previous_url).to eq("#{ENV.fetch("BASE_URL")}/callnumber?param_1=value_1¶m_2=value_2") + expect(subject.previous_url).to eq("#{S.base_url}/callnumber?param_1=value_1¶m_2=value_2") end end context "#next_url" do it "returns appropriate url" do allow(@browse_list).to receive(:next_url_params).and_return({param_1: "value_1", param_2: "value_2"}) - expect(subject.next_url).to eq("#{ENV.fetch("BASE_URL")}/callnumber?param_1=value_1¶m_2=value_2") + expect(subject.next_url).to eq("#{S.base_url}/callnumber?param_1=value_1¶m_2=value_2") end end end diff --git a/spec/models/datastores_spec.rb b/spec/models/datastores_spec.rb index b6fb8d2..b9b6728 100644 --- a/spec/models/datastores_spec.rb +++ b/spec/models/datastores_spec.rb @@ -31,7 +31,7 @@ end context "#href" do it "has an href" do - expect(datastore.href).to eq("#{ENV.fetch("SEARCH_URL")}/datastore") + expect(datastore.href).to eq("#{S.search_url}/datastore") end end context "#current?" do diff --git a/spec/models/search_dropdown_spec.rb b/spec/models/search_dropdown_spec.rb index 7be15c2..789e28a 100644 --- a/spec/models/search_dropdown_spec.rb +++ b/spec/models/search_dropdown_spec.rb @@ -15,7 +15,7 @@ def encoded_query(query) end it "returns appropriate browse url" do @type = "browse_by_callnumber" - expect(subject).to eq("#{ENV.fetch("BASE_URL")}/callnumber?query=#{encoded_query("Things")}") + expect(subject).to eq("#{S.base_url}/callnumber?query=#{encoded_query("Things")}") end it "sends the user to search if they submit nonexistent browse_by type" do @type = "browse_by_something_that_does_not_exist" diff --git a/spec/models/subject_list_spec.rb b/spec/models/subject_list_spec.rb index e5f437e..e20a3c3 100644 --- a/spec/models/subject_list_spec.rb +++ b/spec/models/subject_list_spec.rb @@ -43,13 +43,13 @@ context "#previous_url" do it "returns appropriate url" do allow(@browse_list).to receive(:previous_url_params).and_return({param_1: "value_1", param_2: "value_2"}) - expect(subject.previous_url).to eq("#{ENV.fetch("BASE_URL")}/subject?param_1=value_1¶m_2=value_2") + expect(subject.previous_url).to eq("#{S.base_url}/subject?param_1=value_1¶m_2=value_2") end end context "#next_url" do it "returns appropriate url" do allow(@browse_list).to receive(:next_url_params).and_return({param_1: "value_1", param_2: "value_2"}) - expect(subject.next_url).to eq("#{ENV.fetch("BASE_URL")}/subject?param_1=value_1¶m_2=value_2") + expect(subject.next_url).to eq("#{S.base_url}/subject?param_1=value_1¶m_2=value_2") end end end diff --git a/spec/requests_spec.rb b/spec/requests_spec.rb index bd1092c..4ceb64c 100644 --- a/spec/requests_spec.rb +++ b/spec/requests_spec.rb @@ -61,7 +61,7 @@ it "redirects to appropriate url for given parameters" do post "/search", {type: "browse_by_author", query: "Thing"} expect(last_response.status).to eq(302) - expect(last_response.headers["Location"]).to eq("#{ENV.fetch("BASE_URL")}/author?query=Thing") + expect(last_response.headers["Location"]).to eq("#{S.base_url}/author?query=Thing") end end context "get /-/live" do diff --git a/views/layout.erb b/views/layout.erb index cebbde4..a329821 100644 --- a/views/layout.erb +++ b/views/layout.erb @@ -4,13 +4,13 @@ Library Search | <%= list.doc_title %> - - - + + + - + +