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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b6c9d90718cf1237ee8b26dcdfe2c24cd0b3074f8932c1b2cc0f75f1c66b55b7
4
- data.tar.gz: 8fa65eefecfc2786f5f23628210e3f1dee2a8769a4bbdc7219b9ef20a578b1d7
3
+ metadata.gz: 0c502edad47aa6cdcac4ec5ac099410ad0f9d689aaad7aad22eddc1ef40317c6
4
+ data.tar.gz: 52552cc7c5730bee7bec92d30ad743aeb9a7db6e2513484a603ee301ce99ea30
5
5
  SHA512:
6
- metadata.gz: f620d6e7cd123bfdf72c2d01cd82ab856cd67beafeb50188aa39a489223469064c4b0a16bde4a4f744a708f31b592872cb026980cd7e6c33b3041dc3e5d4dbfc
7
- data.tar.gz: 43ad05e848f1708fc0fddeaf5dbc585bdb7bcd42c1526ad58b068cff5677e03541fb1cdfc0d0600e08d5491abf07ece3db7ce65db6acadf08ecb4d73c4067cd2
6
+ metadata.gz: 5adecd559ac3a240263c23cbe94e539c8b479bff9325c8873bfb5d233a13469152ebfd9f6859527375ecd374a583d14994362a99101b5e7f543a3cb6809455ab
7
+ data.tar.gz: 037a2496b8165b5336967d42d498876c90087e26215113b598d9a3ea3abc7e82b0eac0797aec9f3ce85c96bfe54b42556fbb1f5a0149a4c1923ea90c61427d30
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ledger_sync (1.7.0)
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
- 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)
@@ -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
- 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)
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
@@ -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.parameterize(separator: '_').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.0'
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.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: 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