Module: Cul::Hydra::ApplicationIdBehavior

Extended by:
ActiveSupport::Concern
Defined in:
app/controllers/concerns/cul/hydra/application_id_behavior.rb

Instance Method Summary collapse

Instance Method Details

#find_for_params(path, solr_params) ⇒ Object



4
5
6
7
# File 'app/controllers/concerns/cul/hydra/application_id_behavior.rb', line 4

def find_for_params(path,solr_params)
  res = blacklight_config.repository.send_and_receive(path, {key=>solr_params.to_hash, method:blacklight_config.http_method})
  Blacklight::SolrResponse.new(res, solr_params, solr_document_model: blacklight_config.solr_document_model)
end

#get_solr_response_for_app_id(id = nil, extra_controller_params = {}) ⇒ Object

Raises:

  • (Blacklight::Exceptions::InvalidSolrID)


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/concerns/cul/hydra/application_id_behavior.rb', line 9

def get_solr_response_for_app_id(id=nil, extra_controller_params={})
  id ||= params[:id]
  id = id.clone
  id.sub!(/apt\:\/columbia/,'apt://columbia') # TOTAL HACK
  id.gsub!(':','\:')
  id.gsub!('/','\/')
  p = blacklight_config.default_document_solr_params.merge(extra_controller_params)
  p[:fq] = "identifier_ssim:#{(id)}"
  p[:fl] ||= '*'
  #p[:qt] ||= blacklight_config.document_solr_request_handler
  repository = blacklight_config.repository_class.new(blacklight_config)
  solr_response = repository.search(p)
  raise Blacklight::Exceptions::InvalidSolrID.new(id) if solr_response.docs.empty?
  document = SolrDocument.new(solr_response.docs.first, solr_response)
  @response, @document = [solr_response, document]
end

#get_solr_response_for_dc_id(id = nil, extra_controller_params = {}) ⇒ Object

Raises:

  • (Blacklight::Exceptions::InvalidSolrID)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/concerns/cul/hydra/application_id_behavior.rb', line 26

def get_solr_response_for_dc_id(id=nil, extra_controller_params={})
  id ||= params[:id]
  id = id.clone
  p = blacklight_config.default_document_solr_params.merge(extra_controller_params)
  id.sub!(/apt\:\/columbia/,'apt://columbia') # TOTAL HACK
  id.gsub!(':','\:')
  id.gsub!('/','\/')
  p[:fq] = "dc_identifier_ssim:#{(id)}"
  p[:fl] ||= '*'
  #p[:qt] ||= blacklight_config.document_solr_request_handler
  repository = blacklight_config.repository_class.new(blacklight_config)
  solr_response = repository.search(p)
  raise Blacklight::Exceptions::InvalidSolrID.new(id) if solr_response.docs.empty?
  document = SolrDocument.new(solr_response.docs.first, solr_response)
  @response, @document = [solr_response, document]
end