ledger_sync 1.7.0 → 1.8.0
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 +4 -4
- data/Gemfile.lock +4 -39
- data/ledger_sync.gemspec +2 -3
- data/lib/ledger_sync.rb +3 -2
- data/lib/ledger_sync/ledgers/operation.rb +1 -1
- data/lib/ledger_sync/test/support/test_ledger/searcher.rb +1 -1
- data/lib/ledger_sync/version.rb +1 -1
- metadata +17 -44
- data/bin/qa +0 -3
- data/lib/ledger_sync/ledgers/netsuite_soap/client.rb +0 -88
- data/lib/ledger_sync/ledgers/netsuite_soap/config.rb +0 -7
- data/lib/ledger_sync/ledgers/netsuite_soap/customer/operations/create.rb +0 -66
- data/lib/ledger_sync/ledgers/netsuite_soap/customer/operations/find.rb +0 -49
- data/lib/ledger_sync/ledgers/netsuite_soap/operation.rb +0 -40
- data/lib/ledger_sync/ledgers/netsuite_soap/operation/create.rb +0 -29
- data/lib/ledger_sync/ledgers/netsuite_soap/operation/find.rb +0 -15
- data/lib/ledger_sync/ledgers/netsuite_soap/resource.rb +0 -10
- data/lib/ledger_sync/ledgers/netsuite_soap/resources/customer.rb +0 -29
- data/lib/ledger_sync/ledgers/netsuite_soap/resources/subsidiary.rb +0 -12
- data/lib/ledger_sync/ledgers/netsuite_soap/subsidiary/operations/create.rb +0 -42
- data/lib/ledger_sync/ledgers/netsuite_soap/subsidiary/operations/find.rb +0 -38
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0c502edad47aa6cdcac4ec5ac099410ad0f9d689aaad7aad22eddc1ef40317c6
|
|
4
|
+
data.tar.gz: 52552cc7c5730bee7bec92d30ad743aeb9a7db6e2513484a603ee301ce99ea30
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5adecd559ac3a240263c23cbe94e539c8b479bff9325c8873bfb5d233a13469152ebfd9f6859527375ecd374a583d14994362a99101b5e7f543a3cb6809455ab
|
|
7
|
+
data.tar.gz: 037a2496b8165b5336967d42d498876c90087e26215113b598d9a3ea3abc7e82b0eac0797aec9f3ce85c96bfe54b42556fbb1f5a0149a4c1923ea90c61427d30
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
ledger_sync (1.
|
|
4
|
+
ledger_sync (1.8.0)
|
|
5
5
|
activemodel
|
|
6
6
|
colorize
|
|
7
7
|
dry-schema (~> 1.5.4)
|
|
@@ -10,10 +10,10 @@ PATH
|
|
|
10
10
|
faraday-detailed_logger
|
|
11
11
|
faraday_middleware
|
|
12
12
|
fingerprintable (>= 1.2.1)
|
|
13
|
-
netsuite (~> 0.8.6)
|
|
14
13
|
nokogiri
|
|
15
|
-
|
|
14
|
+
openssl (~> 2.2.0)
|
|
16
15
|
pd_ruby
|
|
16
|
+
rack (~> 2.2.3)
|
|
17
17
|
resonad
|
|
18
18
|
simply_serializable (>= 1.5.1)
|
|
19
19
|
|
|
@@ -30,12 +30,8 @@ GEM
|
|
|
30
30
|
zeitwerk (~> 2.2, >= 2.2.2)
|
|
31
31
|
addressable (2.7.0)
|
|
32
32
|
public_suffix (>= 2.0.2, < 5.0)
|
|
33
|
-
akami (1.3.1)
|
|
34
|
-
gyoku (>= 0.4.0)
|
|
35
|
-
nokogiri
|
|
36
33
|
ast (2.4.1)
|
|
37
34
|
awesome_print (1.8.0)
|
|
38
|
-
builder (3.2.4)
|
|
39
35
|
bump (0.9.0)
|
|
40
36
|
byebug (11.1.3)
|
|
41
37
|
childprocess (4.0.0)
|
|
@@ -108,13 +104,8 @@ GEM
|
|
|
108
104
|
fingerprintable (1.2.1)
|
|
109
105
|
colorize
|
|
110
106
|
forwardable-extended (2.6.0)
|
|
111
|
-
gyoku (1.3.1)
|
|
112
|
-
builder (>= 2.1.2)
|
|
113
107
|
hashdiff (1.0.1)
|
|
114
108
|
http_parser.rb (0.6.0)
|
|
115
|
-
httpi (2.4.5)
|
|
116
|
-
rack
|
|
117
|
-
socksify
|
|
118
109
|
i18n (0.9.5)
|
|
119
110
|
concurrent-ruby (~> 1.0)
|
|
120
111
|
iniparse (1.5.0)
|
|
@@ -141,7 +132,6 @@ GEM
|
|
|
141
132
|
jekyll-watch (2.2.1)
|
|
142
133
|
listen (~> 3.0)
|
|
143
134
|
json (2.3.1)
|
|
144
|
-
jwt (2.2.2)
|
|
145
135
|
kramdown (1.17.0)
|
|
146
136
|
liquid (4.0.3)
|
|
147
137
|
listen (3.2.1)
|
|
@@ -150,20 +140,10 @@ GEM
|
|
|
150
140
|
mercenary (0.3.6)
|
|
151
141
|
mini_portile2 (2.4.0)
|
|
152
142
|
minitest (5.14.2)
|
|
153
|
-
multi_json (1.15.0)
|
|
154
|
-
multi_xml (0.6.0)
|
|
155
143
|
multipart-post (2.1.1)
|
|
156
|
-
netsuite (0.8.6)
|
|
157
|
-
savon (>= 2.3.0, <= 2.11.1)
|
|
158
144
|
nokogiri (1.10.10)
|
|
159
145
|
mini_portile2 (~> 2.4.0)
|
|
160
|
-
|
|
161
|
-
oauth2 (1.4.4)
|
|
162
|
-
faraday (>= 0.8, < 2.0)
|
|
163
|
-
jwt (>= 1.0, < 3.0)
|
|
164
|
-
multi_json (~> 1.3)
|
|
165
|
-
multi_xml (~> 0.5)
|
|
166
|
-
rack (>= 1.2, < 3)
|
|
146
|
+
openssl (2.2.0)
|
|
167
147
|
overcommit (0.57.0)
|
|
168
148
|
childprocess (>= 0.6.3, < 5)
|
|
169
149
|
iniparse (~> 1.4)
|
|
@@ -217,14 +197,6 @@ GEM
|
|
|
217
197
|
sass-listen (4.0.0)
|
|
218
198
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
219
199
|
rb-inotify (~> 0.9, >= 0.9.7)
|
|
220
|
-
savon (2.11.1)
|
|
221
|
-
akami (~> 1.2)
|
|
222
|
-
builder (>= 2.1.2)
|
|
223
|
-
gyoku (~> 1.2)
|
|
224
|
-
httpi (~> 2.3)
|
|
225
|
-
nokogiri (>= 1.4.0)
|
|
226
|
-
nori (~> 2.4)
|
|
227
|
-
wasabi (~> 3.4)
|
|
228
200
|
simplecov (0.16.1)
|
|
229
201
|
docile (~> 1.1)
|
|
230
202
|
json (>= 1.8, < 3)
|
|
@@ -232,7 +204,6 @@ GEM
|
|
|
232
204
|
simplecov-html (0.10.2)
|
|
233
205
|
simply_serializable (1.5.1)
|
|
234
206
|
fingerprintable (>= 1.2.1)
|
|
235
|
-
socksify (1.7.1)
|
|
236
207
|
sync (0.5.0)
|
|
237
208
|
term-ansicolor (1.7.1)
|
|
238
209
|
tins (~> 1.0)
|
|
@@ -243,11 +214,6 @@ GEM
|
|
|
243
214
|
tzinfo (1.2.8)
|
|
244
215
|
thread_safe (~> 0.1)
|
|
245
216
|
unicode-display_width (1.7.0)
|
|
246
|
-
vcr (6.0.0)
|
|
247
|
-
wasabi (3.6.1)
|
|
248
|
-
addressable
|
|
249
|
-
httpi (~> 2.0)
|
|
250
|
-
nokogiri (>= 1.4.2)
|
|
251
217
|
webmock (3.9.5)
|
|
252
218
|
addressable (>= 2.3.6)
|
|
253
219
|
crack (>= 0.3.2)
|
|
@@ -275,7 +241,6 @@ DEPENDENCIES
|
|
|
275
241
|
rake (~> 13.0)
|
|
276
242
|
rspec (~> 3.2)
|
|
277
243
|
rubocop (= 1.0.0)
|
|
278
|
-
vcr
|
|
279
244
|
webmock
|
|
280
245
|
|
|
281
246
|
BUNDLED WITH
|
data/ledger_sync.gemspec
CHANGED
|
@@ -46,7 +46,6 @@ Gem::Specification.new do |spec|
|
|
|
46
46
|
spec.add_development_dependency('rake', '~> 13.0')
|
|
47
47
|
spec.add_development_dependency('rspec', '~> 3.2')
|
|
48
48
|
spec.add_development_dependency('rubocop', '1.0.0')
|
|
49
|
-
spec.add_development_dependency('vcr', '>= 0')
|
|
50
49
|
spec.add_development_dependency('webmock', '>= 0')
|
|
51
50
|
spec.add_runtime_dependency('activemodel', '>= 0')
|
|
52
51
|
spec.add_runtime_dependency('colorize', '>= 0')
|
|
@@ -56,10 +55,10 @@ Gem::Specification.new do |spec|
|
|
|
56
55
|
spec.add_runtime_dependency('faraday-detailed_logger', '>= 0')
|
|
57
56
|
spec.add_runtime_dependency('faraday_middleware', '>= 0')
|
|
58
57
|
spec.add_runtime_dependency('fingerprintable', '>= 1.2.1')
|
|
59
|
-
spec.add_runtime_dependency('netsuite', '~> 0.8.6')
|
|
60
58
|
spec.add_runtime_dependency('nokogiri', '>= 0')
|
|
61
|
-
spec.add_runtime_dependency('
|
|
59
|
+
spec.add_runtime_dependency('openssl', '~> 2.2.0')
|
|
62
60
|
spec.add_runtime_dependency('pd_ruby', '>= 0')
|
|
61
|
+
spec.add_runtime_dependency('rack', '~> 2.2.3')
|
|
63
62
|
spec.add_runtime_dependency('resonad', '>= 0')
|
|
64
63
|
spec.add_runtime_dependency('simply_serializable', '>= 1.5.1')
|
|
65
64
|
end
|
data/lib/ledger_sync.rb
CHANGED
|
@@ -10,8 +10,9 @@ require 'colorize'
|
|
|
10
10
|
require 'fingerprintable'
|
|
11
11
|
require 'simply_serializable'
|
|
12
12
|
require 'active_model'
|
|
13
|
-
require '
|
|
14
|
-
require '
|
|
13
|
+
require 'rack'
|
|
14
|
+
require 'openssl'
|
|
15
|
+
require 'faraday'
|
|
15
16
|
require 'tempfile'
|
|
16
17
|
require 'pd_ruby'
|
|
17
18
|
|
data/lib/ledger_sync/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ledger_sync
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Jackson
|
|
@@ -234,20 +234,6 @@ dependencies:
|
|
|
234
234
|
- - '='
|
|
235
235
|
- !ruby/object:Gem::Version
|
|
236
236
|
version: 1.0.0
|
|
237
|
-
- !ruby/object:Gem::Dependency
|
|
238
|
-
name: vcr
|
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
|
240
|
-
requirements:
|
|
241
|
-
- - ">="
|
|
242
|
-
- !ruby/object:Gem::Version
|
|
243
|
-
version: '0'
|
|
244
|
-
type: :development
|
|
245
|
-
prerelease: false
|
|
246
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
247
|
-
requirements:
|
|
248
|
-
- - ">="
|
|
249
|
-
- !ruby/object:Gem::Version
|
|
250
|
-
version: '0'
|
|
251
237
|
- !ruby/object:Gem::Dependency
|
|
252
238
|
name: webmock
|
|
253
239
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -375,35 +361,35 @@ dependencies:
|
|
|
375
361
|
- !ruby/object:Gem::Version
|
|
376
362
|
version: 1.2.1
|
|
377
363
|
- !ruby/object:Gem::Dependency
|
|
378
|
-
name:
|
|
364
|
+
name: nokogiri
|
|
379
365
|
requirement: !ruby/object:Gem::Requirement
|
|
380
366
|
requirements:
|
|
381
|
-
- - "
|
|
367
|
+
- - ">="
|
|
382
368
|
- !ruby/object:Gem::Version
|
|
383
|
-
version: 0
|
|
369
|
+
version: '0'
|
|
384
370
|
type: :runtime
|
|
385
371
|
prerelease: false
|
|
386
372
|
version_requirements: !ruby/object:Gem::Requirement
|
|
387
373
|
requirements:
|
|
388
|
-
- - "
|
|
374
|
+
- - ">="
|
|
389
375
|
- !ruby/object:Gem::Version
|
|
390
|
-
version: 0
|
|
376
|
+
version: '0'
|
|
391
377
|
- !ruby/object:Gem::Dependency
|
|
392
|
-
name:
|
|
378
|
+
name: openssl
|
|
393
379
|
requirement: !ruby/object:Gem::Requirement
|
|
394
380
|
requirements:
|
|
395
|
-
- - "
|
|
381
|
+
- - "~>"
|
|
396
382
|
- !ruby/object:Gem::Version
|
|
397
|
-
version:
|
|
383
|
+
version: 2.2.0
|
|
398
384
|
type: :runtime
|
|
399
385
|
prerelease: false
|
|
400
386
|
version_requirements: !ruby/object:Gem::Requirement
|
|
401
387
|
requirements:
|
|
402
|
-
- - "
|
|
388
|
+
- - "~>"
|
|
403
389
|
- !ruby/object:Gem::Version
|
|
404
|
-
version:
|
|
390
|
+
version: 2.2.0
|
|
405
391
|
- !ruby/object:Gem::Dependency
|
|
406
|
-
name:
|
|
392
|
+
name: pd_ruby
|
|
407
393
|
requirement: !ruby/object:Gem::Requirement
|
|
408
394
|
requirements:
|
|
409
395
|
- - ">="
|
|
@@ -417,19 +403,19 @@ dependencies:
|
|
|
417
403
|
- !ruby/object:Gem::Version
|
|
418
404
|
version: '0'
|
|
419
405
|
- !ruby/object:Gem::Dependency
|
|
420
|
-
name:
|
|
406
|
+
name: rack
|
|
421
407
|
requirement: !ruby/object:Gem::Requirement
|
|
422
408
|
requirements:
|
|
423
|
-
- - "
|
|
409
|
+
- - "~>"
|
|
424
410
|
- !ruby/object:Gem::Version
|
|
425
|
-
version:
|
|
411
|
+
version: 2.2.3
|
|
426
412
|
type: :runtime
|
|
427
413
|
prerelease: false
|
|
428
414
|
version_requirements: !ruby/object:Gem::Requirement
|
|
429
415
|
requirements:
|
|
430
|
-
- - "
|
|
416
|
+
- - "~>"
|
|
431
417
|
- !ruby/object:Gem::Version
|
|
432
|
-
version:
|
|
418
|
+
version: 2.2.3
|
|
433
419
|
- !ruby/object:Gem::Dependency
|
|
434
420
|
name: resonad
|
|
435
421
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -483,7 +469,6 @@ files:
|
|
|
483
469
|
- README.md
|
|
484
470
|
- Rakefile
|
|
485
471
|
- bin/console
|
|
486
|
-
- bin/qa
|
|
487
472
|
- bin/setup
|
|
488
473
|
- docker-compose.yml
|
|
489
474
|
- docs/.gitignore
|
|
@@ -712,18 +697,6 @@ files:
|
|
|
712
697
|
- lib/ledger_sync/ledgers/mixins/infer_validation_contract_mixin.rb
|
|
713
698
|
- lib/ledger_sync/ledgers/mixins/offset_and_limit_pagination_searcher_mixin.rb
|
|
714
699
|
- lib/ledger_sync/ledgers/mixins/serialization_mixin.rb
|
|
715
|
-
- lib/ledger_sync/ledgers/netsuite_soap/client.rb
|
|
716
|
-
- lib/ledger_sync/ledgers/netsuite_soap/config.rb
|
|
717
|
-
- lib/ledger_sync/ledgers/netsuite_soap/customer/operations/create.rb
|
|
718
|
-
- lib/ledger_sync/ledgers/netsuite_soap/customer/operations/find.rb
|
|
719
|
-
- lib/ledger_sync/ledgers/netsuite_soap/operation.rb
|
|
720
|
-
- lib/ledger_sync/ledgers/netsuite_soap/operation/create.rb
|
|
721
|
-
- lib/ledger_sync/ledgers/netsuite_soap/operation/find.rb
|
|
722
|
-
- lib/ledger_sync/ledgers/netsuite_soap/resource.rb
|
|
723
|
-
- lib/ledger_sync/ledgers/netsuite_soap/resources/customer.rb
|
|
724
|
-
- lib/ledger_sync/ledgers/netsuite_soap/resources/subsidiary.rb
|
|
725
|
-
- lib/ledger_sync/ledgers/netsuite_soap/subsidiary/operations/create.rb
|
|
726
|
-
- lib/ledger_sync/ledgers/netsuite_soap/subsidiary/operations/find.rb
|
|
727
700
|
- lib/ledger_sync/ledgers/operation.rb
|
|
728
701
|
- lib/ledger_sync/ledgers/request.rb
|
|
729
702
|
- lib/ledger_sync/ledgers/response.rb
|
data/bin/qa
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'oauth2'
|
|
4
|
-
|
|
5
|
-
module LedgerSync
|
|
6
|
-
module Ledgers
|
|
7
|
-
module NetSuiteSOAP
|
|
8
|
-
class Client
|
|
9
|
-
include Ledgers::Client::Mixin
|
|
10
|
-
|
|
11
|
-
DEFAULT_API_VERSION = '2016_2'
|
|
12
|
-
|
|
13
|
-
attr_reader :account_id,
|
|
14
|
-
:api_version,
|
|
15
|
-
:consumer_key,
|
|
16
|
-
:consumer_secret,
|
|
17
|
-
:token_id,
|
|
18
|
-
:token_secret
|
|
19
|
-
|
|
20
|
-
def initialize(args = {})
|
|
21
|
-
@account_id = args.fetch(:account_id)
|
|
22
|
-
@api_version = args.fetch(:api_version, DEFAULT_API_VERSION)
|
|
23
|
-
@consumer_key = args.fetch(:consumer_key)
|
|
24
|
-
@consumer_secret = args.fetch(:consumer_secret)
|
|
25
|
-
@token_id = args.fetch(:token_id)
|
|
26
|
-
@token_secret = args.fetch(:token_secret)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
# Converts an account_id for use by the NetSuite gem
|
|
31
|
-
#
|
|
32
|
-
# @return [String] Converted account_id
|
|
33
|
-
#
|
|
34
|
-
def account_id_for_gem
|
|
35
|
-
account_id.downcase.split('-sb').join('_SB')
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
# Converts an account_id for use in the API URL
|
|
40
|
-
#
|
|
41
|
-
# @return [String] API URL compliant account_id
|
|
42
|
-
#
|
|
43
|
-
def account_id_for_url
|
|
44
|
-
account_id.downcase.split('_SB').join('-sb')
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def setup
|
|
48
|
-
setup_account_id_for_gem = account_id_for_gem
|
|
49
|
-
setup_account_id_for_url = account_id_for_url
|
|
50
|
-
setup_api_version = api_version
|
|
51
|
-
setup_consumer_key = consumer_key
|
|
52
|
-
setup_consumer_secret = consumer_secret
|
|
53
|
-
setup_token_id = token_id
|
|
54
|
-
setup_token_secret = token_secret
|
|
55
|
-
|
|
56
|
-
::NetSuite.configure do
|
|
57
|
-
reset!
|
|
58
|
-
|
|
59
|
-
account setup_account_id_for_gem
|
|
60
|
-
consumer_key setup_consumer_key
|
|
61
|
-
consumer_secret setup_consumer_secret
|
|
62
|
-
token_id setup_token_id
|
|
63
|
-
token_secret setup_token_secret
|
|
64
|
-
api_version setup_api_version
|
|
65
|
-
wsdl_domain "#{setup_account_id_for_url}.suitetalk.api.netsuite.com"
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def teardown
|
|
70
|
-
::NetSuite.configure do
|
|
71
|
-
reset!
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
def wrap_perform
|
|
76
|
-
setup
|
|
77
|
-
yield
|
|
78
|
-
ensure
|
|
79
|
-
teardown
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def self.ledger_attributes_to_save
|
|
83
|
-
[]
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module LedgerSync
|
|
4
|
-
module Ledgers
|
|
5
|
-
module NetSuiteSOAP
|
|
6
|
-
class Customer
|
|
7
|
-
module Operations
|
|
8
|
-
class Create < NetSuiteSOAP::Operation::Create
|
|
9
|
-
class Contract < LedgerSync::Ledgers::Contract
|
|
10
|
-
params do
|
|
11
|
-
required(:external_id).maybe(:string)
|
|
12
|
-
required(:ledger_id).value(:nil)
|
|
13
|
-
required(:email).maybe(:string)
|
|
14
|
-
required(:name).filled(:string)
|
|
15
|
-
required(:phone_number).maybe(:string)
|
|
16
|
-
required(:subsidiary).hash(Types::Reference)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def operate
|
|
23
|
-
netsuite_subsidiary = ::NetSuite::Records::Subsidiary.get(
|
|
24
|
-
internal_id: resource.subsidiary.ledger_id
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
unless netsuite_subsidiary
|
|
28
|
-
return failure(
|
|
29
|
-
error: Error::OperationError.new(
|
|
30
|
-
message: "Subsidiary with ID '#{resource.subsidiary.ledger_id}' does not exist.",
|
|
31
|
-
operation: self
|
|
32
|
-
)
|
|
33
|
-
)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
netsuite_resource = ::NetSuite::Records::Customer.new(
|
|
37
|
-
company_name: resource.name,
|
|
38
|
-
email: resource.email,
|
|
39
|
-
external_id: resource.external_id,
|
|
40
|
-
entity_id: resource.external_id,
|
|
41
|
-
first_name: resource.first_name,
|
|
42
|
-
last_name: resource.last_name,
|
|
43
|
-
phone: resource.phone_number,
|
|
44
|
-
subsidiary: netsuite_subsidiary
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
return netsuite_failure(netsuite_resource: netsuite_resource) unless netsuite_resource.add
|
|
48
|
-
|
|
49
|
-
resource.email = netsuite_resource.email
|
|
50
|
-
resource.external_id = netsuite_resource.external_id
|
|
51
|
-
resource.name = "#{netsuite_resource.first_name} #{netsuite_resource.last_name}"
|
|
52
|
-
resource.phone_number = netsuite_resource.phone
|
|
53
|
-
|
|
54
|
-
resource.ledger_id = netsuite_resource.internal_id
|
|
55
|
-
|
|
56
|
-
success(
|
|
57
|
-
resource: resource,
|
|
58
|
-
response: netsuite_resource
|
|
59
|
-
)
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module LedgerSync
|
|
4
|
-
module Ledgers
|
|
5
|
-
module NetSuiteSOAP
|
|
6
|
-
class Customer
|
|
7
|
-
module Operations
|
|
8
|
-
class Find < NetSuiteSOAP::Operation::Find
|
|
9
|
-
class Contract < LedgerSync::Ledgers::Contract
|
|
10
|
-
params do
|
|
11
|
-
optional(:external_id).maybe(:string)
|
|
12
|
-
required(:ledger_id).filled(:string)
|
|
13
|
-
optional(:email).maybe(:string)
|
|
14
|
-
optional(:name).maybe(:string)
|
|
15
|
-
optional(:phone_number).maybe(:string)
|
|
16
|
-
required(:subsidiary).maybe(:hash, Types::Reference)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def operate
|
|
23
|
-
customer = ::NetSuite::Records::Customer.get(
|
|
24
|
-
internal_id: resource.ledger_id
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
resource.email = customer.email
|
|
28
|
-
resource.external_id = customer.external_id
|
|
29
|
-
resource.external_id = customer.internal_id
|
|
30
|
-
resource.name = if customer.is_person
|
|
31
|
-
"#{customer.first_name} #{customer.last_name}"
|
|
32
|
-
else
|
|
33
|
-
customer.company_name
|
|
34
|
-
end
|
|
35
|
-
resource.phone_number = customer.phone
|
|
36
|
-
|
|
37
|
-
resource.ledger_id = customer.internal_id
|
|
38
|
-
|
|
39
|
-
success(
|
|
40
|
-
resource: resource,
|
|
41
|
-
response: customer
|
|
42
|
-
)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module LedgerSync
|
|
4
|
-
module Ledgers
|
|
5
|
-
module NetSuiteSOAP
|
|
6
|
-
class Operation
|
|
7
|
-
module Mixin
|
|
8
|
-
def self.included(base)
|
|
9
|
-
base.include Ledgers::Operation::Mixin
|
|
10
|
-
base.include InstanceMethods
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
module InstanceMethods
|
|
14
|
-
def netsuite_resource_class
|
|
15
|
-
@netsuite_resource_class ||= serializer.class::NETSUITE_RESOURCE_CLASS
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def netsuite_error(netsuite_resource:)
|
|
19
|
-
Error::OperationError.new(
|
|
20
|
-
message: netsuite_resource.errors.first.message,
|
|
21
|
-
operation: self,
|
|
22
|
-
response: netsuite_resource
|
|
23
|
-
)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def netsuite_failure(netsuite_resource:)
|
|
27
|
-
failure(netsuite_error(netsuite_resource: netsuite_resource))
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def perform
|
|
31
|
-
client.wrap_perform do
|
|
32
|
-
super
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../operation'
|
|
4
|
-
|
|
5
|
-
module LedgerSync
|
|
6
|
-
module Ledgers
|
|
7
|
-
module NetSuiteSOAP
|
|
8
|
-
class Operation
|
|
9
|
-
class Create
|
|
10
|
-
include NetSuiteSOAP::Operation::Mixin
|
|
11
|
-
|
|
12
|
-
private
|
|
13
|
-
|
|
14
|
-
def operate
|
|
15
|
-
response = client.post(
|
|
16
|
-
resource: netsuite_online_resource_type,
|
|
17
|
-
payload: serializer.serialize
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
success(
|
|
21
|
-
resource: serializer.deserialize(hash: response),
|
|
22
|
-
response: response
|
|
23
|
-
)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'subsidiary'
|
|
4
|
-
|
|
5
|
-
module LedgerSync
|
|
6
|
-
module Ledgers
|
|
7
|
-
module NetSuiteSOAP
|
|
8
|
-
class Customer < NetSuiteSOAP::Resource
|
|
9
|
-
attribute :email, type: LedgerSync::Type::String
|
|
10
|
-
attribute :name, type: LedgerSync::Type::String
|
|
11
|
-
attribute :phone_number, type: LedgerSync::Type::String
|
|
12
|
-
|
|
13
|
-
references_one :subsidiary, to: Subsidiary
|
|
14
|
-
|
|
15
|
-
def first_name
|
|
16
|
-
return if name.nil?
|
|
17
|
-
|
|
18
|
-
name.split(' ').first
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def last_name
|
|
22
|
-
return if name.nil?
|
|
23
|
-
|
|
24
|
-
name.split(' ')[1..-1]
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module LedgerSync
|
|
4
|
-
module Ledgers
|
|
5
|
-
module NetSuiteSOAP
|
|
6
|
-
class Subsidiary < NetSuiteSOAP::Resource
|
|
7
|
-
attribute :name, type: LedgerSync::Type::String
|
|
8
|
-
attribute :state, type: LedgerSync::Type::String
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module LedgerSync
|
|
4
|
-
module Ledgers
|
|
5
|
-
module NetSuiteSOAP
|
|
6
|
-
class Subsidiary
|
|
7
|
-
module Operations
|
|
8
|
-
class Create < NetSuiteSOAP::Operation::Create
|
|
9
|
-
class Contract < LedgerSync::Ledgers::Contract
|
|
10
|
-
params do
|
|
11
|
-
required(:external_id).filled(:string)
|
|
12
|
-
required(:ledger_id).value(:nil)
|
|
13
|
-
required(:name).filled(:string)
|
|
14
|
-
required(:state).filled(:string)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def operate
|
|
21
|
-
netsuite_resource = ::NetSuite::Records::Subsidiary.new(
|
|
22
|
-
external_id: resource.external_id,
|
|
23
|
-
name: resource.name,
|
|
24
|
-
state: resource.state
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
return netsuite_failure(netsuite_resource: netsuite_resource) unless netsuite_resource.add
|
|
28
|
-
|
|
29
|
-
resource.name = netsuite_resource.name
|
|
30
|
-
resource.ledger_id = netsuite_resource.internal_id
|
|
31
|
-
|
|
32
|
-
success(
|
|
33
|
-
resource: resource,
|
|
34
|
-
response: netsuite_resource
|
|
35
|
-
)
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module LedgerSync
|
|
4
|
-
module Ledgers
|
|
5
|
-
module NetSuiteSOAP
|
|
6
|
-
class Subsidiary
|
|
7
|
-
module Operations
|
|
8
|
-
class Find < NetSuiteSOAP::Operation::Find
|
|
9
|
-
class Contract < LedgerSync::Ledgers::Contract
|
|
10
|
-
params do
|
|
11
|
-
required(:external_id).maybe(:string)
|
|
12
|
-
required(:ledger_id).filled(:string)
|
|
13
|
-
required(:name).maybe(:string)
|
|
14
|
-
required(:state).maybe(:string)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def operate
|
|
21
|
-
netsuite_resource = ::NetSuite::Records::Subsidiary.get(
|
|
22
|
-
internal_id: resource.ledger_id
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
resource.name = netsuite_resource.name
|
|
26
|
-
resource.ledger_id = netsuite_resource.internal_id
|
|
27
|
-
|
|
28
|
-
success(
|
|
29
|
-
resource: resource,
|
|
30
|
-
response: netsuite_resource
|
|
31
|
-
)
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|