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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6c9d90718cf1237ee8b26dcdfe2c24cd0b3074f8932c1b2cc0f75f1c66b55b7
4
- data.tar.gz: 8fa65eefecfc2786f5f23628210e3f1dee2a8769a4bbdc7219b9ef20a578b1d7
3
+ metadata.gz: 4e142e7014a17586e080bf43ffd607c9d21cf1eff2b79d534ba5f1adb317c443
4
+ data.tar.gz: aad98c3cfaa11d618208bb8fb844d15aae9382a5c452fb7db5eaea48870db40c
5
5
  SHA512:
6
- metadata.gz: f620d6e7cd123bfdf72c2d01cd82ab856cd67beafeb50188aa39a489223469064c4b0a16bde4a4f744a708f31b592872cb026980cd7e6c33b3041dc3e5d4dbfc
7
- data.tar.gz: 43ad05e848f1708fc0fddeaf5dbc585bdb7bcd42c1526ad58b068cff5677e03541fb1cdfc0d0600e08d5491abf07ece3db7ce65db6acadf08ecb4d73c4067cd2
6
+ metadata.gz: 3f98f9afed402d9cb36e3ab9448a58996daa0e67d1d3006f07ae873c56dbd41afa4b01ca16c79ccc03e1b991dc52fb2d44d9c089b5c5b9779b0959eb3863c2d7
7
+ data.tar.gz: dc8b05b8c2e106eedb1d54ce7ceca06f85a684bf162fff1f828550af1d228b6c6c69fff713223e77d23babccd53190ea08f309ad6a364318e5b567ab804fa2c4
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ledger_sync (1.7.0)
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
- oauth2
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.11.6)
52
+ dry-configurable (0.12.0)
57
53
  concurrent-ruby (~> 1.0)
58
- dry-core (~> 0.4, >= 0.4.7)
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.8)
63
+ dry-logic (1.1.0)
69
64
  concurrent-ruby (~> 1.0)
70
- dry-core (~> 0.2)
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.1.0)
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.4.0)
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
- netsuite (0.8.6)
157
- savon (>= 2.3.0, <= 2.11.1)
158
- nokogiri (1.10.10)
159
- mini_portile2 (~> 2.4.0)
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
@@ -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('oauth2', '>= 0')
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
@@ -10,8 +10,9 @@ require 'colorize'
10
10
  require 'fingerprintable'
11
11
  require 'simply_serializable'
12
12
  require 'active_model'
13
- require 'netsuite'
14
- require 'oauth2'
13
+ require 'rack'
14
+ require 'openssl'
15
+ require 'faraday'
15
16
  require 'tempfile'
16
17
  require 'pd_ruby'
17
18
 
@@ -16,7 +16,7 @@ module LedgerSync
16
16
  end
17
17
 
18
18
  def operation_method
19
- @operation_method ||= name.split('::').last.snakecase.to_sym
19
+ @operation_method ||= name.split('::').last.underscore.to_sym
20
20
  end
21
21
 
22
22
  def operations_module
@@ -36,7 +36,7 @@ module LedgerSync
36
36
 
37
37
  def search
38
38
  super
39
- rescue OAuth2::Error => e
39
+ rescue => e # rubocop:disable Style/RescueStandardError
40
40
  @response = e # TODO: Better catch/raise errors as LedgerSync::Error
41
41
  failure
42
42
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LedgerSync
4
- VERSION = '1.7.0'
4
+ VERSION = '1.8.1'
5
5
 
6
6
  def self.version
7
7
  if !ENV['TRAVIS'] || ENV.fetch('TRAVIS_TAG', '') != ''
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.7.0
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: netsuite
364
+ name: nokogiri
379
365
  requirement: !ruby/object:Gem::Requirement
380
366
  requirements:
381
- - - "~>"
367
+ - - ">="
382
368
  - !ruby/object:Gem::Version
383
- version: 0.8.6
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.8.6
376
+ version: '0'
391
377
  - !ruby/object:Gem::Dependency
392
- name: nokogiri
378
+ name: openssl
393
379
  requirement: !ruby/object:Gem::Requirement
394
380
  requirements:
395
- - - ">="
381
+ - - "~>"
396
382
  - !ruby/object:Gem::Version
397
- version: '0'
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: '0'
390
+ version: 2.2.0
405
391
  - !ruby/object:Gem::Dependency
406
- name: oauth2
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: pd_ruby
406
+ name: rack
421
407
  requirement: !ruby/object:Gem::Requirement
422
408
  requirements:
423
- - - ">="
409
+ - - "~>"
424
410
  - !ruby/object:Gem::Version
425
- version: '0'
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: '0'
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,3 +0,0 @@
1
- #!/bin/bash
2
-
3
- bundle exec rspec qa -I ./qa --require qa_helper.rb $@
@@ -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,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'client'
4
-
5
- LedgerSync.register_ledger(:netsuite_soap, base_module: LedgerSync::Ledgers::NetSuiteSOAP) do |config|
6
- config.name = 'NetSuite SOAP'
7
- 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,15 +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 Find
10
- include NetSuiteSOAP::Operation::Mixin
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LedgerSync
4
- module Ledgers
5
- module NetSuiteSOAP
6
- class Resource < LedgerSync::Resource
7
- end
8
- end
9
- end
10
- 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