class NetSuite::Actions::DeleteList

Public Class Methods

new(klass, options = { }) click to toggle source
# File lib/netsuite/actions/delete_list.rb, line 6
def initialize(klass, options = { })
  @klass = klass
  @options = options
end

Private Instance Methods

errors() click to toggle source
# File lib/netsuite/actions/delete_list.rb, line 74
def errors
  errors = response_list.select { |r| r[:status] && r[:status][:status_detail] }.map do |obj|
    error_obj = obj[:status][:status_detail]
    error_obj = [error_obj] if error_obj.class == Hash
    errors = error_obj.map do |error|
      NetSuite::Error.new(error)
    end

    [obj[:base_ref][:@internal_id], errors]
  end
  Hash[errors]
end
request(credentials={}) click to toggle source
# File lib/netsuite/actions/delete_list.rb, line 13
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_list, message: request_body
end
request_body() click to toggle source

<soap:Body>

<platformMsgs:deleteList>
  <platformMsgs:baseRef internalId="1" type="customer" xsi:type="platformCore:RecordRef"/>
  <platformMsgs:baseRef internalId="2" type="customer" xsi:type="platformCore:RecordRef"/>
</platformMsgs:deleteList>

</soap:Body>

# File lib/netsuite/actions/delete_list.rb, line 28
def request_body
  list = @options.is_a?(Hash) ? @options[:list] : @options

  formatted_list = if @options[:type_id]
    type_id = @options[:type_id]
    record_type = 'platformCore:CustomRecordRef'

    list.map do |internal_id|
      {
        '@internalId' => internal_id,
        '@typeId' => type_id,
        '@xsi:type' => record_type
      }
    end
  else
    type = @klass.to_s.split('::').last.lower_camelcase
    record_type = 'platformCore:RecordRef'

    list.map do |internal_id|
      {
        '@internalId' => internal_id,
        '@type' => type,
        '@xsi:type' => record_type
      }
    end
  end

  {
    baseRef: formatted_list
  }
end
response_body() click to toggle source
# File lib/netsuite/actions/delete_list.rb, line 87
def response_body
  @response_body ||= response_list
end
response_errors() click to toggle source
# File lib/netsuite/actions/delete_list.rb, line 68
def response_errors
  if response_list.any? { |r| r[:status][:@is_success] == 'false' }
    @response_errors ||= errors
  end
end
response_list() click to toggle source
# File lib/netsuite/actions/delete_list.rb, line 60
def response_list
  @response_list ||= array_wrap(@response.to_hash[:delete_list_response][:write_response_list][:write_response])
end
success?() click to toggle source
# File lib/netsuite/actions/delete_list.rb, line 64
def success?
  @success ||= response_errors.blank?
end