Sha256: 555089e3123fc9cd0b3b03544139e2a7f2fb38b8920a13fcd4e459aaa58f07bd

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

# coding: utf-8
require 'libis-tools'
require 'libis/services/service_error'
require 'libis/services/rest_client'

module Libis
  module Services
    module Alma

      class SruService
        include ::Libis::Services::RestClient

        def initialize(url = 'https://eu.alma.exlibrisgroup.com/view/sru')
          configure(url)
        end

        def search(field, value, library = '32KUL_LIBIS_NETWORK')
          result = get library, version: '1.2', operation: 'searchRetrieve', recordSchema: 'marcxml',
                       query: "#{field}=#{value}"

          unless result['//diag:diagnostic'].blank?
            raise Libis::Services::ServiceError, "#{result['/searchRetrieveResponse/diag:diagnostic/diag:message']}"
          end

          result.xpath('//record').map do |record|
            Libis::Tools::XmlDocument.parse(record.to_s)
          end
        end

        protected

        def result_parser(response)
          Libis::Tools::XmlDocument.parse(response)
        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
libis-services-0.1.3 lib/libis/services/alma/sru_service.rb