Class: XDS::RetrieveDocumentSetResponse
- Inherits:
-
Object
- Object
- XDS::RetrieveDocumentSetResponse
- Defined in:
- lib/xds/retrieve_document_set_response.rb
Instance Attribute Summary collapse
-
#retrieved_documents ⇒ Object
readonly
Returns the value of attribute retrieved_documents.
Instance Method Summary collapse
-
#initialize ⇒ RetrieveDocumentSetResponse
constructor
A new instance of RetrieveDocumentSetResponse.
- #parse_soap_response(soap_xml) ⇒ Object
- #request_successful? ⇒ Boolean
Constructor Details
#initialize ⇒ RetrieveDocumentSetResponse
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_documents ⇒ Object (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
11 12 13 |
# File 'lib/xds/retrieve_document_set_response.rb', line 11 def request_successful? @request_successful end |