class NetSuite::Actions::Delete

Public Class Methods

new(object = nil, options = {}) click to toggle source
# File lib/netsuite/actions/delete.rb, line 7
def initialize(object = nil, options = {})
  @object  = object
  @options = options
end

Private Instance Methods

request(credentials={}) click to toggle source
# File lib/netsuite/actions/delete.rb, line 14
def request(credentials={})
  NetSuite::Configuration.connection(
    {namespaces: {
      'xmlns:platformMsgs' => "urn:messages_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com",
      'xmlns:platformCore' => "urn:core_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com"
    }}, credentials
  ).call :delete, message: request_body
end
request_body() click to toggle source

<soap:Body>

<platformMsgs:delete>
  <platformMsgs:baseRef internalId="980" type="customer" xsi:type="platformCore:RecordRef"/>
</platformMsgs:delete>

</soap:Body>

# File lib/netsuite/actions/delete.rb, line 32
def request_body
  body = {
    'platformMsgs:baseRef' => {
      '@xsi:type'   => (@options[:custom] ? 'platformCore:CustomRecordRef' : 'platformCore:RecordRef')
    },
  }

  if @object.respond_to?(:external_id) && @object.external_id
    body['platformMsgs:baseRef']['@externalId'] = @object.external_id
  end

  if @object.respond_to?(:internal_id) && @object.internal_id
    body['platformMsgs:baseRef']['@internalId'] = @object.internal_id
  end

  if @object.class.respond_to?(:type_id) && @object.class.type_id
    body['platformMsgs:baseRef']['@typeId'] = @object.class.type_id
  end

  body['platformMsgs:baseRef']['@type'] = soap_type unless @options[:custom]

  body
end
response_body() click to toggle source
# File lib/netsuite/actions/delete.rb, line 64
def response_body
  @response_body ||= response_hash[:base_ref]
end
response_hash() click to toggle source
# File lib/netsuite/actions/delete.rb, line 56
def response_hash
  @response_hash ||= @response.to_hash[:delete_response][:write_response]
end
soap_type() click to toggle source
# File lib/netsuite/actions/delete.rb, line 23
def soap_type
  @object.class.to_s.split('::').last.lower_camelcase
end
success?() click to toggle source
# File lib/netsuite/actions/delete.rb, line 60
def success?
  @success ||= response_hash[:status][:@is_success] == 'true'
end