diff --git a/config/actions.yml b/config/actions.yml index 9ca23995..2c718906 100644 --- a/config/actions.yml +++ b/config/actions.yml @@ -22,8 +22,3 @@
Items sent from U-M Library search
html_footer: >- -- id: favorites - type: favorites - driver: Spectrum::Json::Favorites - credentials: - service: https://apps.lib.umich.edu/favorites/api diff --git a/local-gems/spectrum-json/lib/spectrum/json.rb b/local-gems/spectrum-json/lib/spectrum/json.rb index a43e505a..0fa63bc1 100644 --- a/local-gems/spectrum-json/lib/spectrum/json.rb +++ b/local-gems/spectrum-json/lib/spectrum/json.rb @@ -35,7 +35,7 @@ require "spectrum/json/ris" require "spectrum/json/twilio" require "spectrum/json/email" -require "spectrum/json/favorites" +# require "spectrum/json/favorites" require "spectrum/response" require "spectrum/response/spectrumable" @@ -55,12 +55,8 @@ require "spectrum/response/text" require "spectrum/response/email" require "spectrum/response/file" -require "spectrum/response/favorite" -require "spectrum/response/unfavorite" require "spectrum/response/tag" require "spectrum/response/untag" -require "spectrum/response/list_favorites" -require "spectrum/response/suggest_favorites" require "spectrum/response/profile" require "spectrum/response/ids" require "spectrum/response/debug" @@ -89,12 +85,8 @@ require "spectrum/request/text" require "spectrum/request/email" require "spectrum/request/file" -require "spectrum/request/favorite" -require "spectrum/request/unfavorite" require "spectrum/request/tag" require "spectrum/request/untag" -require "spectrum/request/list_favorites" -require "spectrum/request/suggest_favorites" require "spectrum/request/profile" require "spectrum/request/ids" require "spectrum/request/debug" @@ -200,27 +192,27 @@ def routes(app) defaults: {type: "Profile"}, via: %i[get options] - app.match "profile/favorites/list", - to: "json#act", - defaults: {type: "ListFavorites"}, - via: %i[get options] + # app.match "profile/favorites/list", + # to: "json#act", + # defaults: {type: "ListFavorites"}, + # via: %i[get options] - app.match "profile/favorites/suggest", - to: "json#act", - defaults: {type: "SuggestFavorites"}, - via: %i[get options] + # app.match "profile/favorites/suggest", + # to: "json#act", + # defaults: {type: "SuggestFavorites"}, + # via: %i[get options] app.match "file", to: "json#file", defaults: {type: "File"}, via: %i[post options] - %w[text email favorite unfavorite tag untag].each do |action| - app.match action, - to: "json#act", - defaults: {type: action.titlecase}, - via: %i[post options] - end + # %w[text email favorite unfavorite tag untag].each do |action| + # app.match action, + # to: "json#act", + # defaults: {type: action.titlecase}, + # via: %i[post options] + # end end end end diff --git a/local-gems/spectrum-json/lib/spectrum/json/favorites.rb b/local-gems/spectrum-json/lib/spectrum/json/favorites.rb deleted file mode 100644 index b91c5b0e..00000000 --- a/local-gems/spectrum-json/lib/spectrum/json/favorites.rb +++ /dev/null @@ -1,129 +0,0 @@ -module Spectrum - module Json - class Favorites - class << self - attr_accessor :config - - def configure!(config) - self.config = config - end - - def suggest(username) - params = { user: username } - JSON.parse(Net::HTTP.get(uri('suggest', params))) - end - - def list(username) - params = { user: username } - JSON.parse(Net::HTTP.get(uri('list', params))) - end - - def favorite(username, items) - return unless (silo = favoriteable_silo(items)) - params = { - user: username, - items: favoriteable_items(items), - tags: [silo].flatten - } - JSON.parse(Net::HTTP.get(uri('add', params))) - end - - def unfavorite(username, items) - return unless (silo = favoriteable_silo(items)) - params = { - user: username, - items: favoriteable_items(items), - tags: [silo].flatten - } - JSON.parse(Net::HTTP.get(uri('remove', params))) - end - - def tag(username, tag, items) - return if items.empty? || tag.empty? - params = { - user: username, - items: favoriteable_items(items), - tags: [tag].flatten - } - JSON.parse(Net::HTTP.get(uri('add', params))) - end - - def untag(username, tag, items) - return if items.empty? || tag.empty? - params = { - user: username, - items: favoriteable_items(items), - tags: [tag].flatten - } - JSON.parse(Net::HTTP.get(uri('remove', params))) - end - - private - - def favoriteable_items(items) - ret = {} - items.each_with_index { |item, idx| ret[idx.to_s] = favoriteable_item(item) } - ret - end - - def favoriteable_item(item) - { - id: favoriteable_url(item), - title: fetch_field(item, 'title') - } - end - - def favoriteable_url(item) - ret = [] - case (datastore = fetch_field(item, 'datastore')) - when 'mirlyn' - ret.push('http://mirlyn.lib.umich.edu/Record/' + fetch_field(item, 'id')) - ret.push('https://search.lib.umich.edu/catalog/record/' + fetch_field(item, 'id')) - when 'primo', 'articles', 'articlesplus' - ret.push('http://www.lib.umich.edu/articles/details/' + fetch_field(item, 'id')) - ret.push('https://search.lib.umich.edu/articles/record/' + fetch_field(item, 'id')) - unless (openurl = fetch_field(item, 'openurl')).empty? - ret.push('http://mgetit.lib.umich.edu/?' + openurl) - end - when 'databases' - ret.push('http://www.lib.umich.edu/node/' + fetch_field(item, 'id')) - ret.push('https://search.lib.umich.edu/databases/record/' + fetch_field(item, 'id')) - when 'journals', 'onlinejournals' - ret.push('http://mirlyn.lib.umich.edu/Record/' + fetch_field(item, 'id')) - ret.push('https://search.lib.umich.edu/onlinejournals/record/' + fetch_field(item, 'id')) - when 'website' - ret.push(fetch_field(item, 'id')) - else - ret.push(datastore + ':' + fetch_field(item, 'id')) - end - ret - end - - def fetch_field(item, field_name) - [item&.find {|field| field[:uid] == field_name}&.fetch(:value, nil)].flatten.compact.first.to_s - end - - def favoriteable_silo(items) - case (datastore = fetch_field(items&.first, 'datastore')) - when 'mirlyn' - 'mirlyn-favorite' - when 'primo', 'articles', 'articlesplus' - 'articles-favorite' - when 'databases' - 'databases-favorite' - when 'journals', 'onlinejournals' - 'journals-favorite' - when 'website' - 'website-favorite' - else - datastore + '-favorite' - end - end - - def uri(type, params) - URI(config.service + '/' + type).tap { |u| u.query = params.to_query } - end - end - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/request/favorite.rb b/local-gems/spectrum-json/lib/spectrum/request/favorite.rb deleted file mode 100644 index 5ae5cc57..00000000 --- a/local-gems/spectrum-json/lib/spectrum/request/favorite.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Spectrum - module Request - class Favorite < Action - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/request/list_favorites.rb b/local-gems/spectrum-json/lib/spectrum/request/list_favorites.rb deleted file mode 100644 index 56f27c84..00000000 --- a/local-gems/spectrum-json/lib/spectrum/request/list_favorites.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Spectrum - module Request - class ListFavorites < Action - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/request/suggest_favorites.rb b/local-gems/spectrum-json/lib/spectrum/request/suggest_favorites.rb deleted file mode 100644 index 993b3962..00000000 --- a/local-gems/spectrum-json/lib/spectrum/request/suggest_favorites.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Spectrum - module Request - class SuggestFavorites < Action - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/request/unfavorite.rb b/local-gems/spectrum-json/lib/spectrum/request/unfavorite.rb deleted file mode 100644 index 1c4b682a..00000000 --- a/local-gems/spectrum-json/lib/spectrum/request/unfavorite.rb +++ /dev/null @@ -1,6 +0,0 @@ -module Spectrum - module Request - class Unfavorite < Action - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/response/favorite.rb b/local-gems/spectrum-json/lib/spectrum/response/favorite.rb deleted file mode 100644 index c379a7b1..00000000 --- a/local-gems/spectrum-json/lib/spectrum/response/favorite.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Spectrum - module Response - class Favorite < Action - - attr_accessor :driver - - def initialize(request) - super(request) - self.driver = Spectrum::Json.actions['favorites'].driver - end - - def spectrum - driver.favorite(request.username, request.items) - end - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/response/list_favorites.rb b/local-gems/spectrum-json/lib/spectrum/response/list_favorites.rb deleted file mode 100644 index 3eddea85..00000000 --- a/local-gems/spectrum-json/lib/spectrum/response/list_favorites.rb +++ /dev/null @@ -1,18 +0,0 @@ -module Spectrum - module Response - class ListFavorites < Action - - attr_accessor :driver - - def initialize(request) - super(request) - self.driver = Spectrum::Json.actions['favorites'].driver - end - - def spectrum - driver.list(request.username) - end - - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/response/suggest_favorites.rb b/local-gems/spectrum-json/lib/spectrum/response/suggest_favorites.rb deleted file mode 100644 index 7b9e732b..00000000 --- a/local-gems/spectrum-json/lib/spectrum/response/suggest_favorites.rb +++ /dev/null @@ -1,18 +0,0 @@ -module Spectrum - module Response - class SuggestFavorites < Action - - attr_accessor :driver - - def initialize(request) - super(request) - self.driver = Spectrum::Json.actions['favorites'].driver - end - - def spectrum - driver.suggest(request.username) - end - - end - end -end diff --git a/local-gems/spectrum-json/lib/spectrum/response/unfavorite.rb b/local-gems/spectrum-json/lib/spectrum/response/unfavorite.rb deleted file mode 100644 index 8f24dc8e..00000000 --- a/local-gems/spectrum-json/lib/spectrum/response/unfavorite.rb +++ /dev/null @@ -1,16 +0,0 @@ -module Spectrum - module Response - class Unfavorite < Action - attr_accessor :driver - - def initialize(request) - super(request) - self.driver = Spectrum::Json.actions['favorites'].driver - end - - def spectrum - driver.unfavorite(request.username, request.items) - end - end - end -end diff --git a/spec/spectrum-config/search_engines/primo/engine_spec.rb b/spec/spectrum-config/search_engines/primo/engine_spec.rb index 27926fbf..af4d5d68 100644 --- a/spec/spectrum-config/search_engines/primo/engine_spec.rb +++ b/spec/spectrum-config/search_engines/primo/engine_spec.rb @@ -1,9 +1,9 @@ -require_relative '../../../rails_helper' -require 'spectrum/search_engines/primo/engine' +require_relative "../../../rails_helper" +require "spectrum/search_engines/primo/engine" describe Spectrum::SearchEngines::Primo::Engine do context "#query" do - subject { described_class.new(key: "KEY", host: 'HOST') } + subject { described_class.new(key: "KEY", host: "HOST", libkey: {}) } it "takes this form" do expect(subject.query).to eq("apikey=KEY&scope=default_scope&tab=default_tab&vid=Auto1") end