ledger_sync 1.7.0 → 1.8.0

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: 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