class Europeana::Blacklight::Repository
Repository
hooked up to Europeana
REST API via europeana-api gem
@see Europeana::API
Public Instance Methods
build_connection()
click to toggle source
# File lib/europeana/blacklight/repository.rb, line 45 def build_connection Europeana::API.tap do |api| api.key = blacklight_config.connection_config[:europeana_api_key] end end
find(id, params = {})
click to toggle source
Finds a single Europeana
record via the API
@param id [String] record ID @params params [Hash] request params to send to API @return (see blacklight_config.response_model)
# File lib/europeana/blacklight/repository.rb, line 16 def find(id, params = {}) id = "/#{id}" unless id[0] == '/' res = connection.record.fetch(params.merge(id: id)) blacklight_config.response_model.new( res, params, document_model: blacklight_config.document_model, blacklight_config: blacklight_config ) end
more_like_this(doc, field = nil, params = {})
click to toggle source
Queries the API for items similar to a given document
# File lib/europeana/blacklight/repository.rb, line 37 def more_like_this(doc, field = nil, params = {}) query = doc.more_like_this_query(field) return [nil, []] if query.nil? mlt_params = { query: query, rows: 4, profile: 'rich' }.merge(params) mlt_response = search(mlt_params) [mlt_response, mlt_response.documents] end
search(params = {})
click to toggle source
# File lib/europeana/blacklight/repository.rb, line 26 def search(params = {}) res = connection.record.search(params.to_h) blacklight_config.response_model.new( res, params, document_model: blacklight_config.document_model, blacklight_config: blacklight_config ) end