Class: XDS::RetrieveDocumentSetResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/xds/retrieve_document_set_response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRetrieveDocumentSetResponse

Returns a new instance of RetrieveDocumentSetResponse.



6
7
8
9
# File 'lib/xds/retrieve_document_set_response.rb', line 6

def initialize
  @retrieved_documents = []
  @request_successful = false
end

Instance Attribute Details

#retrieved_documentsObject (readonly)

Returns the value of attribute retrieved_documents.



4
5
6
# File 'lib/xds/retrieve_document_set_response.rb', line 4

def retrieved_documents
  @retrieved_documents
end

Instance Method Details

#parse_soap_response(soap_xml) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/xds/retrieve_document_set_response.rb', line 15

def parse_soap_response(soap_xml)
  doc = REXML::Document.new(StringIO.new(soap_xml))
  status = REXML::XPath.first(doc, 
              '/soapenv:Envelope/soapenv:Body/xdsb:RetrieveDocumentSetResponse/rs:RegistryResponse/@status',
              COMMON_NAMESPACES)
  if status.to_s.eql?('urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success')
    @request_successful = true
    REXML::XPath.each(doc, 
                '/soapenv:Envelope/soapenv:Body/xdsb:RetrieveDocumentSetResponse/xdsb:DocumentResponse',
                COMMON_NAMESPACES) do |dr|
      doc = {}
      # need to check for include or whether the doc is just embedded in the soap message
      inc = dr.elements['xdsb:Document/xop:Include']
      #Nuke the 'cid:' from the front of the content id since it doesn't show up in the mime message headers
      if inc
       doc[:content_id] = dr.elements['xdsb:Document/xop:Include'].attributes['href'].to_s.sub('cid:', '') if dr.elements['xdsb:Document/xop:Include']
      else
       doc[:content] = Base64.decode64(dr.elements['xdsb:Document'].text)
      end
      doc[:repository_unique_id] = dr.elements['xdsb:RepositoryUniqueId'].text
      doc[:document_unique_id] = dr.elements['xdsb:DocumentUniqueId'].text
      @retrieved_documents << doc
    end
  end
end

#request_successful?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/xds/retrieve_document_set_response.rb', line 11

def request_successful?
  @request_successful
end