Class: Libis::Services::Alma::SruService
- Inherits:
-
Object
- Object
- Libis::Services::Alma::SruService
- Includes:
- RestClient
- Defined in:
- lib/libis/services/alma/sru_service.rb
Instance Attribute Summary
Attributes included from RestClient
Instance Method Summary collapse
-
#initialize(url = 'https://eu.alma.exlibrisgroup.com/view/sru') ⇒ SruService
constructor
A new instance of SruService.
- #search(field, value, library = '32KUL_LIBIS_NETWORK') ⇒ Object
Methods included from RestClient
#configure, #get, #post_data, #post_url, #put_data, #put_url
Constructor Details
#initialize(url = 'https://eu.alma.exlibrisgroup.com/view/sru') ⇒ SruService
Returns a new instance of SruService.
13 14 15 |
# File 'lib/libis/services/alma/sru_service.rb', line 13 def initialize(url = 'https://eu.alma.exlibrisgroup.com/view/sru') configure(url) end |
Instance Method Details
#search(field, value, library = '32KUL_LIBIS_NETWORK') ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/libis/services/alma/sru_service.rb', line 17 def search(field, value, library = '32KUL_LIBIS_NETWORK') result = get library, version: '1.2', operation: 'searchRetrieve', recordSchema: 'marcxml', query: "#{field}=#{value}" if result.is_a?(Libis::Tools::XmlDocument) unless result['//diag:diagnostic'].blank? raise Libis::Services::ServiceError, "#{result['/searchRetrieveResponse/diag:diagnostic/diag:message']}" end return result.xpath('//record').map do |record| Libis::Tools::XmlDocument.parse(record.to_s) end end raise Libis::Services::ServiceError, "#{result[:error_type]} - #{result[:error_name]}" if result[:error_type] raise Libis::Services::ServiceError, "Unexpected reply: '#{result.to_s}' (#{result.class})" end |