Class: LedgerSync::Ledgers::NetSuite::Client
- Inherits:
-
Client
- Object
- Client
- LedgerSync::Ledgers::NetSuite::Client
show all
- Defined in:
- lib/ledger_sync/ledgers/netsuite/client.rb
Constant Summary
collapse
{
}.freeze
{
'Accept' => '*/*',
'Content-Type' => 'application/json',
'prefer' => 'transient'
}.freeze
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Client
base_module, #base_module, base_operation_module_for, config, #ledger_attributes_to_save, #ledger_configuration, ledger_resource_type_for, operation_class_for, #operation_for, #parse_operation_error, resource_from_ledger_type, resources, root_key, #searcher_class_for, #searcher_for, url_for
included
#valid?, #validate, #validate_or_fail
Constructor Details
#initialize(account_id:, consumer_key:, consumer_secret:, token_id:, token_secret:) ⇒ Client
Returns a new instance of Client.
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 25
def initialize(
account_id:,
consumer_key:,
consumer_secret:,
token_id:,
token_secret:
)
@account_id = account_id
@consumer_key = consumer_key
@consumer_secret = consumer_secret
@token_id = token_id
@token_secret = token_secret
end
|
Instance Attribute Details
#account_id ⇒ Object
Returns the value of attribute account_id.
19
20
21
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 19
def account_id
@account_id
end
|
#consumer_key ⇒ Object
Returns the value of attribute consumer_key.
19
20
21
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 19
def consumer_key
@consumer_key
end
|
#consumer_secret ⇒ Object
Returns the value of attribute consumer_secret.
19
20
21
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 19
def consumer_secret
@consumer_secret
end
|
#token_id ⇒ Object
Returns the value of attribute token_id.
19
20
21
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 19
def token_id
@token_id
end
|
#token_secret ⇒ Object
Returns the value of attribute token_secret.
19
20
21
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 19
def token_secret
@token_secret
end
|
Class Method Details
.ledger_attributes_to_save ⇒ Object
100
101
102
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 100
def self.ledger_attributes_to_save
%i[]
end
|
.ledger_resource_type_overrides ⇒ Object
123
124
125
126
127
128
129
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 123
def self.ledger_resource_type_overrides
{
CustomerDeposit => 'customerdeposit',
LedgerClass => 'classification',
JournalEntry => 'journalEntry'
}
end
|
.new_from_env(**override) ⇒ Object
104
105
106
107
108
109
110
111
112
113
114
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 104
def self.new_from_env(**override)
new(
{
account_id: ENV.fetch('NETSUITE_ACCOUNT_ID', nil),
consumer_key: ENV.fetch('NETSUITE_CONSUMER_KEY', nil),
consumer_secret: ENV.fetch('NETSUITE_CONSUMER_SECRET', nil),
token_id: ENV.fetch('NETSUITE_TOKEN_ID', nil),
token_secret: ENV.fetch('NETSUITE_TOKEN_SECRET', nil)
}.merge(override)
)
end
|
Instance Method Details
#account_id_for_oauth ⇒ Object
39
40
41
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 39
def account_id_for_oauth
account_id.gsub(/\-/, '_').upcase
end
|
#account_id_for_url ⇒ Object
43
44
45
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 43
def account_id_for_url
account_id.gsub(/_/, '-').downcase
end
|
#api_base_url ⇒ Object
47
48
49
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 47
def api_base_url
@api_base_url ||= "https://#{api_host}/services/rest/record/v1"
end
|
#api_host ⇒ Object
51
52
53
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 51
def api_host
@api_host ||= "#{account_id_for_url}.suitetalk.api.netsuite.com"
end
|
#delete(**keywords) ⇒ Object
55
56
57
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 55
def delete(**keywords)
request(keywords.merge(method: :delete))
end
|
#get(**keywords) ⇒ Object
59
60
61
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 59
def get(**keywords)
request(keywords.merge(method: :get))
end
|
#ledger_resource_path(args = {}) ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 63
def ledger_resource_path(args = {})
resource = args.fetch(:resource, nil)
params = args.fetch(:params, {})
ret = self.class.ledger_resource_type_for(resource_class: resource.class) ret += "/#{resource.ledger_id}" if resource.ledger_id.present? && args.fetch(:id, true)
Util::URLHelpers.merge_params_in_path(
path: ret,
params: params
)
end
|
75
76
77
78
79
80
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 75
def metadata_for(record:)
Record::Metadata.new(
client: self,
record: record
)
end
|
#patch(headers: {}, **keywords) ⇒ Object
82
83
84
85
86
87
88
89
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 82
def patch(headers: {}, **keywords)
request(
keywords.merge(
headers: WRITE_HEADERS.merge(),
method: :patch
)
)
end
|
#post(headers: {}, **keywords) ⇒ Object
91
92
93
94
95
96
97
98
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 91
def post(headers: {}, **keywords)
request(
keywords.merge(
headers: WRITE_HEADERS.merge(),
method: :post
)
)
end
|
#url_for(resource:) ⇒ Object
116
117
118
119
120
121
|
# File 'lib/ledger_sync/ledgers/netsuite/client.rb', line 116
def url_for(resource:)
DashboardURLHelper.new(
resource: resource,
base_url: "https://#{account_id_for_url}.app.netsuite.com"
).url
end
|