Sha256: 336995b9b5bbdfbc315ee4895fa519d29e1478509055f30693a589e2e9b916c4

Contents?: true

Size: 1.75 KB

Versions: 13

Compression:

Stored size: 1.75 KB

Contents

module NetSuite
  module Actions
    class Initialize
      include Support::Requests

      def initialize(klass, object)
        @klass  = klass
        @object = object
      end

      def request
        connection.request :platformMsgs, :initialize do
          soap.namespaces['xmlns:platformMsgs']    = 'urn:messages_2011_2.platform.webservices.netsuite.com'
          soap.namespaces['xmlns:platformCore']    = 'urn:core_2011_2.platform.webservices.netsuite.com'
          soap.namespaces['xmlns:platformCoreTyp'] = 'urn:types.core_2011_2.platform.webservices.netsuite.com'
          soap.header = auth_header
          soap.body   = request_body
        end
      end

      # <platformMsgs:initializeRecord>
      #   <platformCore:type>invoice</platformCore:type>
      #   <platformCore:reference internalId="1513" type="salesOrder">
      #     <platformCore:name>1511</platformCore:name>
      #   </platformCore:reference>
      # </platformMsgs:initializeRecord>
      def request_body
        {
          'platformMsgs:initializeRecord' => {
            'platformCore:type'      => @klass.to_s.split('::').last.lower_camelcase,
            'platformCore:reference' => {},
            :attributes!             => {
              'platformCore:reference' => {
                'internalId' => @object.internal_id,
                :type        => @object.class.to_s.split('::').last.lower_camelcase
              }
            }
          }
        }
      end

      def response_hash
        @response_hash ||= @response.to_hash[:initialize_response][:read_response]
      end

      def success?
        @success ||= response_hash[:status][:@is_success] == 'true'
      end

      def response_body
        @response_body ||= response_hash[:record]
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
netsuite-0.0.33 lib/netsuite/actions/initialize.rb
netsuite-0.0.32 lib/netsuite/actions/initialize.rb
netsuite-0.0.31 lib/netsuite/actions/initialize.rb
netsuite-0.0.30 lib/netsuite/actions/initialize.rb
netsuite-0.0.29 lib/netsuite/actions/initialize.rb
netsuite-0.0.28 lib/netsuite/actions/initialize.rb
netsuite-0.0.27 lib/netsuite/actions/initialize.rb
netsuite-0.0.26 lib/netsuite/actions/initialize.rb
netsuite-0.0.25 lib/netsuite/actions/initialize.rb
netsuite-0.0.23 lib/netsuite/actions/initialize.rb
netsuite-0.0.22 lib/netsuite/actions/initialize.rb
netsuite-0.0.21 lib/netsuite/actions/initialize.rb
netsuite-0.0.20 lib/netsuite/actions/initialize.rb