Sha256: 866a7a4d0e1a5abdf3987e043d1bdc1ec204b836cc337d0ece577fee45a6d61d

Contents?: true

Size: 1.35 KB

Versions: 31

Compression:

Stored size: 1.35 KB

Contents

# coding: utf-8

require 'libis/tools/xml_document'
require 'libis/services/soap_client'

module Libis
  module Services
    module Digitool

      class DigitoolConnector
        include Libis::Services::SoapClient

        def initialize(service, host = nil)
          @host = host || 'aleph08.libis.kuleuven.be:1801'
          @service = service.to_s.downcase
        end

        def init
          @base_url = "http://#{@host}/de_repository_web/services/"
          @wsdl_extension = '?wsdl'
        end

        protected

        def result_parser(response, options = {})
          result = get_xml_response(response)
          error = nil
          pids = nil
          mids = nil
          de = nil
          doc = Libis::Tools::XmlDocument.parse(result)
          doc.xpath('//error_description').each { |x| error ||= []; error << x.content unless x.content.nil? }
          doc.xpath('//pid').each { |x| pids ||= []; pids << x.content unless x.content.nil? }
          doc.xpath('//mid').each { |x| mids ||= []; mids << x.content unless x.content.nil? }
          doc.xpath('//xb:digital_entity').each { |x| de ||= []; de << x.to_s }
          {errors: error, pids: pids, mids: mids, digital_entities: de}
        end

        def get_xml_response(response)
          response.first[1][response.first[1][:result].snakecase.to_sym]
        end

      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
libis-services-1.1.0 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.13 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.12 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.11 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.10 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.7 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.6 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.5 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.2 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.1 lib/libis/services/digitool/digitool_connector.rb
libis-services-1.0.0 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.2.1 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.2.0 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.1.18 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.1.17 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.1.16 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.1.15 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.1.14 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.1.13 lib/libis/services/digitool/digitool_connector.rb
libis-services-0.1.12 lib/libis/services/digitool/digitool_connector.rb