Class: WSDL::Response::Fault

Inherits:
Data
  • Object
show all
Defined in:
lib/wsdl/response/fault.rb

Overview

Represents a parsed SOAP fault from a response.

Handles both SOAP 1.1 and 1.2 fault structures, normalizing them into a consistent interface.

SOAP 1.1 structure:

<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Something went wrong</faultstring>
<faultactor>http://example.com/actor</faultactor>
<detail><Error>details</Error></detail>
</soap:Fault>

SOAP 1.2 structure:

<soap:Fault>
<soap:Code>
  <soap:Value>soap:Receiver</soap:Value>
  <soap:Subcode>
    <soap:Value>app:DatabaseError</soap:Value>
  </soap:Subcode>
</soap:Code>
<soap:Reason><soap:Text xml:lang="en">Something went wrong</soap:Text></soap:Reason>
<soap:Node>http://example.com/node</soap:Node>
<soap:Role>http://example.com/role</soap:Role>
<soap:Detail><Error>details</Error></soap:Detail>
</soap:Fault>

Examples:

Accessing fault information

fault = response.fault
fault.code      # => "soap:Server" (1.1) or "env:Receiver" (1.2)
fault.subcodes  # => [] (1.1) or ["app:DatabaseError"] (1.2)
fault.reason    # => "Something went wrong"
fault.detail    # => { Error: "details" }
fault.node      # => nil (1.1) or "http://example.com/node" (1.2)
fault.role      # => "http://example.com/actor" (1.1 faultactor) or role (1.2)

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code

Returns:

  • (Object)

    the current value of code



53
54
55
56
57
58
59
60
61
62
# File 'lib/wsdl/response/fault.rb', line 53

Fault = Data.define(:code, :subcodes, :reason, :detail, :node, :role) {
  # Returns a human-readable summary of the fault.
  #
  # @return [String] fault summary
  def to_s
    message = "(#{code}) #{reason}"
    message << " [role: #{role}]" if role
    message
  end
}

#detailObject (readonly)

Returns the value of attribute detail

Returns:

  • (Object)

    the current value of detail



53
54
55
56
57
58
59
60
61
62
# File 'lib/wsdl/response/fault.rb', line 53

Fault = Data.define(:code, :subcodes, :reason, :detail, :node, :role) {
  # Returns a human-readable summary of the fault.
  #
  # @return [String] fault summary
  def to_s
    message = "(#{code}) #{reason}"
    message << " [role: #{role}]" if role
    message
  end
}

#nodeObject (readonly)

Returns the value of attribute node

Returns:

  • (Object)

    the current value of node



53
54
55
56
57
58
59
60
61
62
# File 'lib/wsdl/response/fault.rb', line 53

Fault = Data.define(:code, :subcodes, :reason, :detail, :node, :role) {
  # Returns a human-readable summary of the fault.
  #
  # @return [String] fault summary
  def to_s
    message = "(#{code}) #{reason}"
    message << " [role: #{role}]" if role
    message
  end
}

#reasonObject (readonly)

Returns the value of attribute reason

Returns:

  • (Object)

    the current value of reason



53
54
55
56
57
58
59
60
61
62
# File 'lib/wsdl/response/fault.rb', line 53

Fault = Data.define(:code, :subcodes, :reason, :detail, :node, :role) {
  # Returns a human-readable summary of the fault.
  #
  # @return [String] fault summary
  def to_s
    message = "(#{code}) #{reason}"
    message << " [role: #{role}]" if role
    message
  end
}

#roleObject (readonly)

Returns the value of attribute role

Returns:

  • (Object)

    the current value of role



53
54
55
56
57
58
59
60
61
62
# File 'lib/wsdl/response/fault.rb', line 53

Fault = Data.define(:code, :subcodes, :reason, :detail, :node, :role) {
  # Returns a human-readable summary of the fault.
  #
  # @return [String] fault summary
  def to_s
    message = "(#{code}) #{reason}"
    message << " [role: #{role}]" if role
    message
  end
}

#subcodesObject (readonly)

Returns the value of attribute subcodes

Returns:

  • (Object)

    the current value of subcodes



53
54
55
56
57
58
59
60
61
62
# File 'lib/wsdl/response/fault.rb', line 53

Fault = Data.define(:code, :subcodes, :reason, :detail, :node, :role) {
  # Returns a human-readable summary of the fault.
  #
  # @return [String] fault summary
  def to_s
    message = "(#{code}) #{reason}"
    message << " [role: #{role}]" if role
    message
  end
}

Instance Method Details

#to_sString

Returns a human-readable summary of the fault.

Returns:

  • (String)

    fault summary



57
58
59
60
61
# File 'lib/wsdl/response/fault.rb', line 57

def to_s
  message = "(#{code}) #{reason}"
  message << " [role: #{role}]" if role
  message
end