netsuite 0.2.4 → 0.2.5
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.
- checksums.yaml +8 -8
- data/README.md +32 -0
- data/lib/netsuite.rb +5 -1
- data/lib/netsuite/actions/add.rb +4 -4
- data/lib/netsuite/actions/delete.rb +7 -7
- data/lib/netsuite/actions/get.rb +5 -5
- data/lib/netsuite/actions/get_list.rb +24 -11
- data/lib/netsuite/actions/get_select_value.rb +5 -5
- data/lib/netsuite/actions/initialize.rb +5 -5
- data/lib/netsuite/actions/login.rb +33 -0
- data/lib/netsuite/actions/search.rb +5 -5
- data/lib/netsuite/actions/update.rb +5 -5
- data/lib/netsuite/actions/upsert.rb +4 -4
- data/lib/netsuite/configuration.rb +9 -9
- data/lib/netsuite/records/account.rb +1 -1
- data/lib/netsuite/records/custom_field_list.rb +2 -0
- data/lib/netsuite/records/custom_record.rb +1 -1
- data/lib/netsuite/records/customer.rb +9 -6
- data/lib/netsuite/records/deposit.rb +2 -2
- data/lib/netsuite/records/deposit_cash_back.rb +42 -0
- data/lib/netsuite/records/deposit_cash_back_list.rb +32 -0
- data/lib/netsuite/records/deposit_other.rb +45 -0
- data/lib/netsuite/records/deposit_other_list.rb +32 -0
- data/lib/netsuite/records/item_fulfillment.rb +7 -1
- data/lib/netsuite/records/item_fulfillment_item.rb +1 -1
- data/lib/netsuite/records/item_fulfillment_package_list.rb +22 -1
- data/lib/netsuite/records/sales_order.rb +1 -1
- data/lib/netsuite/records/service_sale_item.rb +1 -1
- data/lib/netsuite/support/requests.rb +5 -4
- data/lib/netsuite/version.rb +1 -1
- data/netsuite.gemspec +1 -1
- data/spec/netsuite/actions/add_spec.rb +5 -5
- data/spec/netsuite/actions/delete_spec.rb +2 -2
- data/spec/netsuite/actions/get_spec.rb +4 -4
- data/spec/netsuite/actions/initialize_spec.rb +2 -2
- data/spec/netsuite/actions/search_spec.rb +6 -6
- data/spec/netsuite/actions/update_spec.rb +4 -4
- data/spec/netsuite/actions/upsert_spec.rb +5 -5
- data/spec/netsuite/records/account_spec.rb +6 -6
- data/spec/netsuite/records/accounting_period_spec.rb +6 -6
- data/spec/netsuite/records/classification_spec.rb +4 -4
- data/spec/netsuite/records/credit_memo_spec.rb +8 -8
- data/spec/netsuite/records/custom_field_list_spec.rb +10 -0
- data/spec/netsuite/records/custom_field_spec.rb +1 -1
- data/spec/netsuite/records/custom_record_ref_spec.rb +1 -1
- data/spec/netsuite/records/custom_record_spec.rb +6 -6
- data/spec/netsuite/records/custom_record_type_spec.rb +6 -6
- data/spec/netsuite/records/customer_payment_spec.rb +9 -9
- data/spec/netsuite/records/customer_refund_spec.rb +8 -8
- data/spec/netsuite/records/customer_spec.rb +10 -10
- data/spec/netsuite/records/department_spec.rb +6 -6
- data/spec/netsuite/records/deposit_spec.rb +10 -10
- data/spec/netsuite/records/inventory_item_spec.rb +6 -6
- data/spec/netsuite/records/invoice_spec.rb +8 -8
- data/spec/netsuite/records/item_fulfillment_package_list_spec.rb +27 -0
- data/spec/netsuite/records/item_fulfillment_spec.rb +49 -0
- data/spec/netsuite/records/job_spec.rb +8 -8
- data/spec/netsuite/records/journal_entry_spec.rb +6 -6
- data/spec/netsuite/records/location_spec.rb +2 -2
- data/spec/netsuite/records/non_inventory_sale_item_spec.rb +6 -6
- data/spec/netsuite/records/payment_method_spec.rb +2 -2
- data/spec/netsuite/records/rev_rec_template_spec.rb +2 -2
- data/spec/netsuite/records/sales_order_spec.rb +9 -9
- data/spec/netsuite/records/service_sale_item_spec.rb +6 -6
- data/spec/netsuite/records/support_case_spec.rb +8 -8
- data/spec/netsuite/records/term_spec.rb +6 -6
- data/spec/netsuite/support/actions_spec.rb +1 -1
- data/spec/netsuite/support/attributes_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +13 -5
- data/lib/netsuite/actions/search_more_with_id.rb +0 -107
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTRiNTZiNjNmNzNhNDY0NzNiYWEwYTBmZmI4MWI3MzA3YTM5N2Q4Nw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTdlZTI4Njc5MDlmN2ViNThiMDNjY2Q4ZGE4ZjZkM2JiZGUwNDc0Ng==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NWVkYjczN2Q2ODA0ZTcxMmJmMTlhN2ZhNTg1MmY0Nzc2NGE0MmZhZDJmZWUz
|
10
|
+
ZmE4YWJlZWIxMDQ1NDhjZWVlYjNmYjI3OTdhYjQyNmQxOTUzMWJiYjFlNWFj
|
11
|
+
NmQ3YmU0OTMzOTdhYmI2NzkxMDVjZjE5ZjQ1ZGY2OTE0NzE4ZGU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NzUzMGVkMDg2ZTQxOTdmMWI3ZWU3ZjgzZWJiMDlmYzQ4M2QzZmFiZWEyZGYw
|
14
|
+
N2ZkZDgwNWUwNzU1MmVhZDRhZjQwYjhkOGU2OTUzMzY1YWYzMGFlMzMwZWRh
|
15
|
+
MDhjYjRlMzZlY2MzMTVhZTg5YWVlNDgyYTFiN2NiZGQxZDVhMTA=
|
data/README.md
CHANGED
@@ -33,6 +33,9 @@ bundle exec rspec
|
|
33
33
|
## Usage
|
34
34
|
|
35
35
|
### Configuration
|
36
|
+
|
37
|
+
Not sure how to find your account id? Search for "web service preferences" in the NetSuite global search.
|
38
|
+
|
36
39
|
```ruby
|
37
40
|
NetSuite.configure do
|
38
41
|
reset!
|
@@ -274,4 +277,33 @@ contact = NetSuite::Records::Contact.get(12345)
|
|
274
277
|
contact.custom_field_list.custentity_alistfield = { internal_id: 1 }
|
275
278
|
contact.custom_field_list.custentity_abooleanfield = true
|
276
279
|
contact.update(custom_field_list: contact.custom_field_list)
|
280
|
+
|
281
|
+
# the getList operation
|
282
|
+
NetSuite::Records::CustomRecord.get_list(
|
283
|
+
# netsuite internalIDs
|
284
|
+
list: [1,2,3],
|
285
|
+
# only needed for a custom record
|
286
|
+
type_id: 1234
|
287
|
+
).each do |record|
|
288
|
+
# do your thing...
|
289
|
+
end
|
290
|
+
|
291
|
+
# getting a custom record
|
292
|
+
record = NetSuite::Records::CustomRecord.get(
|
293
|
+
# custom record type
|
294
|
+
type_id: 10,
|
295
|
+
# reference to instance of the custom record type
|
296
|
+
internal_id: 100
|
297
|
+
)
|
298
|
+
|
299
|
+
# adding a custom record
|
300
|
+
record = NetSuite::Records::CustomRecord.new
|
301
|
+
record.rec_type = NetSuite::Records::CustomRecord.new(internal_id: 10)
|
302
|
+
record.custom_field_list.custrecord_locationstate = "New Jersey"
|
303
|
+
record.add
|
304
|
+
|
305
|
+
# updating a custom record
|
306
|
+
record = NetSuite::Records::CustomRecord.new(internal_id: 100)
|
307
|
+
record.custom_field_list.custrecord_locationstate = "New Jersey"
|
308
|
+
record.update(custom_field_list: record.custom_field_list, rec_type: NetSuite::Records::CustomRecord.new(internal_id: 10))
|
277
309
|
```
|
data/lib/netsuite.rb
CHANGED
@@ -44,7 +44,7 @@ module NetSuite
|
|
44
44
|
autoload :Update, 'netsuite/actions/update'
|
45
45
|
autoload :Upsert, 'netsuite/actions/upsert'
|
46
46
|
autoload :Search, 'netsuite/actions/search'
|
47
|
-
autoload :
|
47
|
+
autoload :Login, 'netsuite/actions/login'
|
48
48
|
end
|
49
49
|
|
50
50
|
module Records
|
@@ -84,6 +84,10 @@ module NetSuite
|
|
84
84
|
autoload :Deposit, 'netsuite/records/deposit'
|
85
85
|
autoload :DepositPayment, 'netsuite/records/deposit_payment'
|
86
86
|
autoload :DepositPaymentList, 'netsuite/records/deposit_payment_list'
|
87
|
+
autoload :DepositOther, 'netsuite/records/deposit_other'
|
88
|
+
autoload :DepositOtherList, 'netsuite/records/deposit_other_list'
|
89
|
+
autoload :DepositCashBack, 'netsuite/records/deposit_cash_back'
|
90
|
+
autoload :DepositCashBackList, 'netsuite/records/deposit_cash_back_list'
|
87
91
|
autoload :Duration, 'netsuite/records/duration'
|
88
92
|
autoload :InventoryItem, 'netsuite/records/inventory_item'
|
89
93
|
autoload :Invoice, 'netsuite/records/invoice'
|
data/lib/netsuite/actions/add.rb
CHANGED
@@ -11,8 +11,8 @@ module NetSuite
|
|
11
11
|
|
12
12
|
private
|
13
13
|
|
14
|
-
def request
|
15
|
-
NetSuite::Configuration.connection.call
|
14
|
+
def request(credentials={})
|
15
|
+
NetSuite::Configuration.connection({}, credentials).call(:add, :message => request_body)
|
16
16
|
end
|
17
17
|
|
18
18
|
# <soap:Body>
|
@@ -70,8 +70,8 @@ module NetSuite
|
|
70
70
|
end
|
71
71
|
|
72
72
|
module Support
|
73
|
-
def add
|
74
|
-
response = NetSuite::Actions::Add.call(self)
|
73
|
+
def add(credentials={})
|
74
|
+
response = NetSuite::Actions::Add.call([self], credentials)
|
75
75
|
|
76
76
|
@errors = response.errors
|
77
77
|
|
@@ -10,13 +10,13 @@ module NetSuite
|
|
10
10
|
|
11
11
|
private
|
12
12
|
|
13
|
-
def request
|
13
|
+
def request(credentials={})
|
14
14
|
NetSuite::Configuration.connection(
|
15
|
-
namespaces: {
|
15
|
+
{namespaces: {
|
16
16
|
'xmlns:platformMsgs' => "urn:messages_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com",
|
17
17
|
'xmlns:platformCore' => "urn:core_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com"
|
18
|
-
},
|
19
|
-
).call :delete, :
|
18
|
+
}}, credentials
|
19
|
+
).call :delete, message: request_body
|
20
20
|
end
|
21
21
|
|
22
22
|
def soap_type
|
@@ -65,11 +65,11 @@ module NetSuite
|
|
65
65
|
end
|
66
66
|
|
67
67
|
module Support
|
68
|
-
def delete(options = {})
|
68
|
+
def delete(options = {}, credentials={})
|
69
69
|
response = if options.empty?
|
70
|
-
NetSuite::Actions::Delete.call(self)
|
70
|
+
NetSuite::Actions::Delete.call([self], credentials)
|
71
71
|
else
|
72
|
-
NetSuite::Actions::Delete.call(self, options)
|
72
|
+
NetSuite::Actions::Delete.call([self, options], credentials)
|
73
73
|
end
|
74
74
|
response.success?
|
75
75
|
end
|
data/lib/netsuite/actions/get.rb
CHANGED
@@ -10,12 +10,12 @@ module NetSuite
|
|
10
10
|
|
11
11
|
private
|
12
12
|
|
13
|
-
def request
|
13
|
+
def request(credentials={})
|
14
14
|
NetSuite::Configuration.connection(
|
15
|
-
namespaces: {
|
15
|
+
{namespaces: {
|
16
16
|
'xmlns:platformMsgs' => "urn:messages_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com",
|
17
17
|
'xmlns:platformCore' => "urn:core_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com"
|
18
|
-
},
|
18
|
+
}}, credentials
|
19
19
|
).call :get, message: request_body
|
20
20
|
end
|
21
21
|
|
@@ -63,10 +63,10 @@ module NetSuite
|
|
63
63
|
|
64
64
|
module ClassMethods
|
65
65
|
|
66
|
-
def get(options = {})
|
66
|
+
def get(options = {}, credentials = {})
|
67
67
|
options = { :internal_id => options } unless options.is_a?(Hash)
|
68
68
|
|
69
|
-
response = NetSuite::Actions::Get.call(self, options)
|
69
|
+
response = NetSuite::Actions::Get.call([self, options], credentials)
|
70
70
|
if response.success?
|
71
71
|
new(response.body)
|
72
72
|
else
|
@@ -10,29 +10,42 @@ module NetSuite
|
|
10
10
|
|
11
11
|
private
|
12
12
|
|
13
|
-
def request
|
14
|
-
NetSuite::Configuration.connection.call
|
13
|
+
def request(credentials={})
|
14
|
+
NetSuite::Configuration.connection({}, credentials).call(:get_list, :message => request_body)
|
15
15
|
end
|
16
16
|
|
17
17
|
def request_body
|
18
|
-
|
18
|
+
# list of all netsuite types; useful for debugging
|
19
|
+
# https://webservices.netsuite.com/xsd/platform/v2014_1_0/coreTypes.xsd
|
20
|
+
|
21
|
+
list = @options.is_a?(Hash) ? @options[:list] : @options
|
22
|
+
|
23
|
+
formatted_list = if @options[:type_id]
|
19
24
|
type = @options[:type_id]
|
20
25
|
record_type = 'platformCore:CustomRecordRef'
|
26
|
+
|
27
|
+
list.map do |internal_id|
|
28
|
+
{
|
29
|
+
'@internalId' => internal_id,
|
30
|
+
'@typeId' => type,
|
31
|
+
'@xsi:type' => record_type
|
32
|
+
}
|
33
|
+
end
|
21
34
|
else
|
22
35
|
type = @klass.to_s.split('::').last.lower_camelcase
|
23
36
|
record_type = 'platformCore:RecordRef'
|
24
|
-
end
|
25
37
|
|
26
|
-
|
27
|
-
|
28
|
-
{
|
29
|
-
baseRef: list.map do |internal_id|
|
38
|
+
list.map do |internal_id|
|
30
39
|
{
|
31
40
|
'@internalId' => internal_id,
|
32
|
-
'@
|
41
|
+
'@type' => type,
|
33
42
|
'@xsi:type' => record_type
|
34
43
|
}
|
35
44
|
end
|
45
|
+
end
|
46
|
+
|
47
|
+
{
|
48
|
+
baseRef: formatted_list
|
36
49
|
}
|
37
50
|
end
|
38
51
|
|
@@ -59,8 +72,8 @@ module NetSuite
|
|
59
72
|
end
|
60
73
|
|
61
74
|
module ClassMethods
|
62
|
-
def get_list(options = { })
|
63
|
-
response = NetSuite::Actions::GetList.call(self, options)
|
75
|
+
def get_list(options = { }, credentials={})
|
76
|
+
response = NetSuite::Actions::GetList.call([self, options], credentials)
|
64
77
|
|
65
78
|
if response.success?
|
66
79
|
response.body.map do |record|
|
@@ -10,12 +10,12 @@ module NetSuite
|
|
10
10
|
|
11
11
|
private
|
12
12
|
|
13
|
-
def request
|
13
|
+
def request(credentials={})
|
14
14
|
NetSuite::Configuration.connection(
|
15
|
-
namespaces: {
|
15
|
+
{namespaces: {
|
16
16
|
'xmlns:platformMsgs' => "urn:messages_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com",
|
17
17
|
'xmlns:platformCore' => "urn:core_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com"
|
18
|
-
},
|
18
|
+
}}, credentials
|
19
19
|
).call :get_select_value, :message => @options
|
20
20
|
end
|
21
21
|
|
@@ -39,13 +39,13 @@ module NetSuite
|
|
39
39
|
|
40
40
|
module ClassMethods
|
41
41
|
|
42
|
-
def get_select_value(options = {})
|
42
|
+
def get_select_value(options = {}, credentials={})
|
43
43
|
message = {
|
44
44
|
pageIndex: (options.delete(:pageIndex) || 1),
|
45
45
|
fieldDescription: field_description(options)
|
46
46
|
}
|
47
47
|
|
48
|
-
response = NetSuite::Actions::GetSelectValue.call(self, message)
|
48
|
+
response = NetSuite::Actions::GetSelectValue.call([self, message], credentials)
|
49
49
|
|
50
50
|
if response.success?
|
51
51
|
new(response.body)
|
@@ -8,13 +8,13 @@ module NetSuite
|
|
8
8
|
@object = object
|
9
9
|
end
|
10
10
|
|
11
|
-
def request
|
11
|
+
def request(credentials={})
|
12
12
|
NetSuite::Configuration.connection(
|
13
|
-
namespaces: {
|
13
|
+
{namespaces: {
|
14
14
|
'xmlns:platformMsgs' => "urn:messages_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com",
|
15
15
|
'xmlns:platformCore' => "urn:core_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com",
|
16
16
|
'xmlns:platformCoreTyp' => "urn:types.core_#{NetSuite::Configuration.api_version}.platform.webservices.netsuite.com",
|
17
|
-
},
|
17
|
+
}}, credentials
|
18
18
|
).call :initialize, :message => request_body
|
19
19
|
end
|
20
20
|
|
@@ -64,8 +64,8 @@ module NetSuite
|
|
64
64
|
|
65
65
|
module ClassMethods
|
66
66
|
|
67
|
-
def initialize(object)
|
68
|
-
response = NetSuite::Actions::Initialize.call(self, object)
|
67
|
+
def initialize(object, credentials={})
|
68
|
+
response = NetSuite::Actions::Initialize.call([self, object], credentials)
|
69
69
|
if response.success?
|
70
70
|
new(response.body)
|
71
71
|
else
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module NetSuite
|
2
|
+
module Actions
|
3
|
+
class Login
|
4
|
+
|
5
|
+
def self.call(credentials)
|
6
|
+
passport = NetSuite::Configuration.auth_header.dup
|
7
|
+
passport['platformMsgs:passport']['platformCore:email'] = credentials[:email] || ''
|
8
|
+
passport['platformMsgs:passport']['platformCore:password'] = credentials[:password] || ''
|
9
|
+
|
10
|
+
begin
|
11
|
+
response = NetSuite::Configuration.connection(soap_header: {}).call :login, message: passport
|
12
|
+
rescue Savon::SOAPFault => e
|
13
|
+
error_details = e.to_hash[:fault]
|
14
|
+
|
15
|
+
return NetSuite::Response.new(
|
16
|
+
success: false,
|
17
|
+
errors: [ NetSuite::Error.new(
|
18
|
+
code: error_details[:detail][:invalid_credentials_fault][:code],
|
19
|
+
message: error_details[:faultstring]
|
20
|
+
)],
|
21
|
+
body: error_details
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
NetSuite::Response.new(
|
26
|
+
success: response.to_hash[:login_response][:session_response][:status][:@is_success] == 'true',
|
27
|
+
body: response.to_hash[:login_response][:session_response][:base_ref]
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -17,11 +17,11 @@ module NetSuite
|
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
20
|
-
def request
|
20
|
+
def request(credentials={})
|
21
21
|
# https://system.netsuite.com/help/helpcenter/en_US/Output/Help/SuiteCloudCustomizationScriptingWebServices/SuiteTalkWebServices/SettingSearchPreferences.html
|
22
22
|
# https://webservices.netsuite.com/xsd/platform/v2012_2_0/messages.xsd
|
23
|
-
|
24
|
-
preferences =
|
23
|
+
|
24
|
+
preferences = NetSuite::Configuration.auth_header(credentials).update(
|
25
25
|
(@options.delete(:preferences) || {}).inject({'platformMsgs:SearchPreferences' => {}}) do |h, (k, v)|
|
26
26
|
h['platformMsgs:SearchPreferences'][k.to_s.lower_camelcase] = v
|
27
27
|
h
|
@@ -228,8 +228,8 @@ module NetSuite
|
|
228
228
|
end
|
229
229
|
|
230
230
|
module ClassMethods
|
231
|
-
def search(options = { })
|
232
|
-
response = NetSuite::Actions::Search.call(self, options)
|
231
|
+
def search(options = { }, credentials={})
|
232
|
+
response = NetSuite::Actions::Search.call([self, options], credentials)
|
233
233
|
|
234
234
|
if response.success?
|
235
235
|
NetSuite::Support::SearchResult.new(response, self)
|
@@ -8,8 +8,8 @@ module NetSuite
|
|
8
8
|
@attributes = attributes
|
9
9
|
end
|
10
10
|
|
11
|
-
def request
|
12
|
-
NetSuite::Configuration.connection.call :update, :message => request_body
|
11
|
+
def request(credentials={})
|
12
|
+
NetSuite::Configuration.connection({}, credentials).call :update, :message => request_body
|
13
13
|
end
|
14
14
|
|
15
15
|
# <platformMsgs:update>
|
@@ -32,7 +32,7 @@ module NetSuite
|
|
32
32
|
if updated_record.respond_to?(:external_id) && updated_record.external_id
|
33
33
|
hash['platformMsgs:record']['@platformMsgs:externalId'] = updated_record.external_id
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
hash
|
37
37
|
end
|
38
38
|
|
@@ -53,10 +53,10 @@ module NetSuite
|
|
53
53
|
end
|
54
54
|
|
55
55
|
module Support
|
56
|
-
def update(options = {})
|
56
|
+
def update(options = {}, credentials={})
|
57
57
|
options.merge!(:internal_id => internal_id) if respond_to?(:internal_id) && internal_id
|
58
58
|
options.merge!(:external_id => external_id) if respond_to?(:external_id) && external_id
|
59
|
-
response = NetSuite::Actions::Update.call(self.class, options)
|
59
|
+
response = NetSuite::Actions::Update.call([self.class, options], credentials)
|
60
60
|
response.success?
|
61
61
|
end
|
62
62
|
end
|
@@ -11,8 +11,8 @@ module NetSuite
|
|
11
11
|
|
12
12
|
private
|
13
13
|
|
14
|
-
def request
|
15
|
-
NetSuite::Configuration.connection.call :upsert, :message => request_body
|
14
|
+
def request(credentials={})
|
15
|
+
NetSuite::Configuration.connection({}, credentials).call :upsert, :message => request_body
|
16
16
|
end
|
17
17
|
|
18
18
|
# <soap:Body>
|
@@ -70,8 +70,8 @@ module NetSuite
|
|
70
70
|
end
|
71
71
|
|
72
72
|
module Support
|
73
|
-
def upsert
|
74
|
-
response = NetSuite::Actions::Upsert.call(self)
|
73
|
+
def upsert(credentials={})
|
74
|
+
response = NetSuite::Actions::Upsert.call([self], credentials)
|
75
75
|
|
76
76
|
@errors = response.errors
|
77
77
|
|
@@ -10,16 +10,16 @@ module NetSuite
|
|
10
10
|
@attributes ||= {}
|
11
11
|
end
|
12
12
|
|
13
|
-
def connection(params =
|
13
|
+
def connection(params={}, credentials={})
|
14
14
|
Savon.client({
|
15
15
|
wsdl: wsdl,
|
16
16
|
read_timeout: read_timeout,
|
17
17
|
namespaces: namespaces,
|
18
|
-
soap_header: auth_header,
|
18
|
+
soap_header: auth_header(credentials),
|
19
19
|
pretty_print_xml: true,
|
20
20
|
logger: logger,
|
21
21
|
log_level: log_level,
|
22
|
-
}.
|
22
|
+
}.update(params))
|
23
23
|
end
|
24
24
|
|
25
25
|
def api_version(version = nil)
|
@@ -65,13 +65,13 @@ module NetSuite
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
-
def auth_header
|
69
|
-
|
68
|
+
def auth_header(credentials={})
|
69
|
+
{
|
70
70
|
'platformMsgs:passport' => {
|
71
|
-
'platformCore:email' => email,
|
72
|
-
'platformCore:password' => password,
|
73
|
-
'platformCore:account' => account.to_s,
|
74
|
-
'platformCore:role' => {
|
71
|
+
'platformCore:email' => credentials[:email] || email,
|
72
|
+
'platformCore:password' => credentials[:password] || password,
|
73
|
+
'platformCore:account' => credentials[:account] || account.to_s,
|
74
|
+
'platformCore:role' => { :@internalId => credentials[:role] || role }
|
75
75
|
}
|
76
76
|
}
|
77
77
|
end
|