ledger_sync 1.7.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +16 -49
- 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: 4e142e7014a17586e080bf43ffd607c9d21cf1eff2b79d534ba5f1adb317c443
|
4
|
+
data.tar.gz: aad98c3cfaa11d618208bb8fb844d15aae9382a5c452fb7db5eaea48870db40c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f98f9afed402d9cb36e3ab9448a58996daa0e67d1d3006f07ae873c56dbd41afa4b01ca16c79ccc03e1b991dc52fb2d44d9c089b5c5b9779b0959eb3863c2d7
|
7
|
+
data.tar.gz: dc8b05b8c2e106eedb1d54ce7ceca06f85a684bf162fff1f828550af1d228b6c6c69fff713223e77d23babccd53190ea08f309ad6a364318e5b567ab804fa2c4
|
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.1)
|
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)
|
@@ -53,10 +49,9 @@ GEM
|
|
53
49
|
diff-lcs (1.4.4)
|
54
50
|
docile (1.3.2)
|
55
51
|
dotenv (2.7.6)
|
56
|
-
dry-configurable (0.
|
52
|
+
dry-configurable (0.12.0)
|
57
53
|
concurrent-ruby (~> 1.0)
|
58
|
-
dry-core (~> 0.
|
59
|
-
dry-equalizer (~> 0.2)
|
54
|
+
dry-core (~> 0.5, >= 0.5.0)
|
60
55
|
dry-container (0.7.2)
|
61
56
|
concurrent-ruby (~> 1.0)
|
62
57
|
dry-configurable (~> 0.1, >= 0.1.3)
|
@@ -65,10 +60,9 @@ GEM
|
|
65
60
|
dry-equalizer (0.3.0)
|
66
61
|
dry-inflector (0.2.0)
|
67
62
|
dry-initializer (3.0.4)
|
68
|
-
dry-logic (1.0
|
63
|
+
dry-logic (1.1.0)
|
69
64
|
concurrent-ruby (~> 1.0)
|
70
|
-
dry-core (~> 0.
|
71
|
-
dry-equalizer (~> 0.2)
|
65
|
+
dry-core (~> 0.5, >= 0.5)
|
72
66
|
dry-schema (1.5.6)
|
73
67
|
concurrent-ruby (~> 1.0)
|
74
68
|
dry-configurable (~> 0.8, >= 0.8.3)
|
@@ -97,24 +91,21 @@ GEM
|
|
97
91
|
eventmachine (1.2.7)
|
98
92
|
factory_bot (6.1.0)
|
99
93
|
activesupport (>= 5.0.0)
|
100
|
-
faraday (1.
|
94
|
+
faraday (1.3.0)
|
95
|
+
faraday-net_http (~> 1.0)
|
101
96
|
multipart-post (>= 1.2, < 3)
|
102
97
|
ruby2_keywords
|
103
98
|
faraday-detailed_logger (2.3.0)
|
104
99
|
faraday (>= 0.8, < 2)
|
100
|
+
faraday-net_http (1.0.0)
|
105
101
|
faraday_middleware (1.0.0)
|
106
102
|
faraday (~> 1.0)
|
107
103
|
ffi (1.13.1)
|
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,29 +132,19 @@ 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)
|
148
138
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
149
139
|
rb-inotify (~> 0.9, >= 0.9.10)
|
150
140
|
mercenary (0.3.6)
|
151
|
-
mini_portile2 (2.
|
141
|
+
mini_portile2 (2.5.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
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
nori (2.6.0)
|
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)
|
144
|
+
nokogiri (1.11.1)
|
145
|
+
mini_portile2 (~> 2.5.0)
|
146
|
+
racc (~> 1.4)
|
147
|
+
openssl (2.2.0)
|
167
148
|
overcommit (0.57.0)
|
168
149
|
childprocess (>= 0.6.3, < 5)
|
169
150
|
iniparse (~> 1.4)
|
@@ -175,6 +156,7 @@ GEM
|
|
175
156
|
pd_ruby (0.2.3)
|
176
157
|
colorize
|
177
158
|
public_suffix (4.0.6)
|
159
|
+
racc (1.5.2)
|
178
160
|
rack (2.2.3)
|
179
161
|
rainbow (3.0.0)
|
180
162
|
rake (13.0.1)
|
@@ -217,14 +199,6 @@ GEM
|
|
217
199
|
sass-listen (4.0.0)
|
218
200
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
219
201
|
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
202
|
simplecov (0.16.1)
|
229
203
|
docile (~> 1.1)
|
230
204
|
json (>= 1.8, < 3)
|
@@ -232,7 +206,6 @@ GEM
|
|
232
206
|
simplecov-html (0.10.2)
|
233
207
|
simply_serializable (1.5.1)
|
234
208
|
fingerprintable (>= 1.2.1)
|
235
|
-
socksify (1.7.1)
|
236
209
|
sync (0.5.0)
|
237
210
|
term-ansicolor (1.7.1)
|
238
211
|
tins (~> 1.0)
|
@@ -243,11 +216,6 @@ GEM
|
|
243
216
|
tzinfo (1.2.8)
|
244
217
|
thread_safe (~> 0.1)
|
245
218
|
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
219
|
webmock (3.9.5)
|
252
220
|
addressable (>= 2.3.6)
|
253
221
|
crack (>= 0.3.2)
|
@@ -275,7 +243,6 @@ DEPENDENCIES
|
|
275
243
|
rake (~> 13.0)
|
276
244
|
rspec (~> 3.2)
|
277
245
|
rubocop (= 1.0.0)
|
278
|
-
vcr
|
279
246
|
webmock
|
280
247
|
|
281
248
|
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.1
|
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
|