netsuite 0.0.27 → 0.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,7 @@ module NetSuite
18
18
  soap.namespaces['xmlns:platformCommon'] = 'urn:common_2011_2.platform.webservices.netsuite.com'
19
19
  soap.namespaces['xmlns:listAcct'] = 'urn:accounting_2011_2.lists.webservices.netsuite.com'
20
20
  soap.namespaces['xmlns:tranCust'] = 'urn:customers_2011_2.transactions.webservices.netsuite.com'
21
+ soap.namespaces['xmlns:setupCustom'] = 'urn:customization_2011_2.setup.webservices.netsuite.com'
21
22
  soap.header = auth_header
22
23
  soap.body = request_body
23
24
  end
@@ -3,8 +3,9 @@ module NetSuite
3
3
  class Delete
4
4
  include Support::Requests
5
5
 
6
- def initialize(object = nil)
7
- @object = object
6
+ def initialize(object = nil, options = {})
7
+ @object = object
8
+ @options = options
8
9
  end
9
10
 
10
11
  private
@@ -18,22 +19,35 @@ module NetSuite
18
19
  end
19
20
  end
20
21
 
22
+ def soap_type
23
+ @object.class.to_s.split('::').last.lower_camelcase
24
+ end
25
+
21
26
  # <soap:Body>
22
27
  # <platformMsgs:delete>
23
28
  # <platformMsgs:baseRef internalId="980" type="customer" xsi:type="platformCore:RecordRef"/>
24
29
  # </platformMsgs:delete>
25
30
  # </soap:Body>
26
31
  def request_body
27
- {
32
+ body = {
28
33
  'platformMsgs:baseRef' => {},
29
34
  :attributes! => {
30
35
  'platformMsgs:baseRef' => {
31
- 'internalId' => @object.internal_id,
32
- 'type' => @object.class.to_s.split('::').last.lower_camelcase,
33
- 'xsi:type' => 'platformCore:RecordRef'
36
+ 'xsi:type' => (@options[:custom] ? 'platformCore:CustomRecordRef' : 'platformCore:RecordRef')
34
37
  }
35
38
  }
36
39
  }
40
+ if @object.respond_to?(:external_id) && @object.external_id
41
+ body[:attributes!]['platformMsgs:baseRef']['externalId'] = @object.external_id
42
+ end
43
+ if @object.respond_to?(:internal_id) && @object.internal_id
44
+ body[:attributes!]['platformMsgs:baseRef']['internalId'] = @object.internal_id
45
+ end
46
+ if @object.class.respond_to?(:type_id) && @object.class.type_id
47
+ body[:attributes!]['platformMsgs:baseRef']['typeId'] = @object.class.type_id
48
+ end
49
+ body[:attributes!]['platformMsgs:baseRef']['type'] = soap_type unless @options[:custom]
50
+ body
37
51
  end
38
52
 
39
53
  def response_hash
@@ -16,6 +16,8 @@ module NetSuite
16
16
  soap.namespaces['xmlns:tranSales'] = 'urn:sales_2011_2.transactions.webservices.netsuite.com'
17
17
  soap.namespaces['xmlns:platformCommon'] = 'urn:common_2011_2.platform.webservices.netsuite.com'
18
18
  soap.namespaces['xmlns:listAcct'] = 'urn:accounting_2011_2.lists.webservices.netsuite.com'
19
+ soap.namespaces['xmlns:tranCust'] = 'urn:customers_2011_2.transactions.webservices.netsuite.com'
20
+ soap.namespaces['xmlns:setupCustom'] = 'urn:customization_2011_2.setup.webservices.netsuite.com'
19
21
  soap.header = auth_header
20
22
  soap.body = request_body
21
23
  end
@@ -31,8 +31,11 @@ module NetSuite
31
31
 
32
32
  def self.get(options = {})
33
33
  options.merge!(:type_id => type_id) unless options[:type_id]
34
- options.merge!(:custom => true)
35
- super(options)
34
+ super(options.merge(:custom => true))
35
+ end
36
+
37
+ def delete
38
+ super(:custom => true)
36
39
  end
37
40
 
38
41
  def self.type_id(id = nil)
@@ -77,8 +77,12 @@ module NetSuite
77
77
 
78
78
  def define_delete(instance_module)
79
79
  instance_module.module_eval do
80
- define_method :delete do
81
- response = NetSuite::Actions::Delete.call(self)
80
+ define_method :delete do |*options|
81
+ response = if options.empty?
82
+ NetSuite::Actions::Delete.call(self)
83
+ else
84
+ NetSuite::Actions::Delete.call(self, *options)
85
+ end
82
86
  response.success?
83
87
  end
84
88
  end
@@ -1,3 +1,3 @@
1
1
  module Netsuite
2
- VERSION = '0.0.27'
2
+ VERSION = '0.0.28'
3
3
  end
@@ -102,7 +102,7 @@ describe NetSuite::Records::CustomRecord do
102
102
 
103
103
  it 'returns true' do
104
104
  NetSuite::Actions::Delete.should_receive(:call).
105
- with(record).
105
+ with(record, { :custom => true }).
106
106
  and_return(response)
107
107
  record.delete.should be_true
108
108
  end
@@ -113,7 +113,7 @@ describe NetSuite::Records::CustomRecord do
113
113
 
114
114
  it 'returns false' do
115
115
  NetSuite::Actions::Delete.should_receive(:call).
116
- with(record).
116
+ with(record, { :custom => true }).
117
117
  and_return(response)
118
118
  record.delete.should be_false
119
119
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netsuite
3
3
  version: !ruby/object:Gem::Version
4
- hash: 41
4
+ hash: 39
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 27
10
- version: 0.0.27
9
+ - 28
10
+ version: 0.0.28
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Moran
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-23 00:00:00 Z
18
+ date: 2012-01-24 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: savon