erp_integration 0.41.0 → 0.43.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: 3364aa85a9b1d3b5c6fdf8085e91b8727020772f979331448e8b31ae918e52d8
4
- data.tar.gz: 2222316cc1daedb2866a69f9dffbce135b5531bcadd3e4efdb3eb5737ade6263
3
+ metadata.gz: 03c877636aaa2a654dbf7f748a0a411d97f2d6e961c08da57f1893efa7db643d
4
+ data.tar.gz: c32f7e20a1e36b4b9588ccab455c235cf21f08080d94351929a628ef878a90e2
5
5
  SHA512:
6
- metadata.gz: 463e2af9f9c6748f5e38555dce0bf51e25991b9c565a3edb4cb6f7bbf873d9fc72a5a97a725a568a47a623fd917985c3e3a0c1c14d612b850b2420e579878886
7
- data.tar.gz: 5c37a546111331bf5db94c5f0ce57349461724ff2ea4d91f458b5c1505115c0a4cd899c7f706c44c57a245cf5acc2d06028e88251ce7f73994a6b077fd5a8990
6
+ metadata.gz: 41b171b6dbd5fbd0bb2f1cd009f4fa5deb8e0efeb7e13c9f83441c36c188cd686acb5e24fd4d3b5839d725eba989480548c7b97cce3835406ddb3e0f1ea03875
7
+ data.tar.gz: ec7f08c47be10585f7f7cc9d96f28bf6b3f2caa240278f8f33cbef2a5c2d9961e710fe26f1e0eaba09fffd203b7c7797c88e6701f83a5455565559287518ce8f
@@ -15,4 +15,4 @@ jobs:
15
15
  steps:
16
16
  - uses: seferov/pr-lint-action@master
17
17
  with:
18
- title-regex: '^\[RELEASE|NO-TICKET|DL|UDL|AD|DU|AR|IN|CON|DIS|AS|MT|SCR|RO|DEL|BE|SBE-\d*\](\ )'
18
+ title-regex: '^\[RELEASE|NO-TICKET|DL|UDL|AD|DU|AR|IN|CON|DIS|AS|MT|SCR|RO|DEL|BE-\d*\](\ )'
@@ -37,6 +37,11 @@ module ErpIntegration
37
37
  # @return [Symbol] The configured adapter for the bill_of_material.
38
38
  attr_writer :bill_of_material_output_adapter
39
39
 
40
+ # Allows configuring an adapter for the `Country` resource. When
41
+ # none is configured, it will default to Fulfil.
42
+ # @return [Symbol] The configured adapter for the country.
43
+ attr_writer :country_adapter
44
+
40
45
  # Allows configuring an adapter for the `ChannelListing` resource. When
41
46
  # none is configured, it will default to Fulfil.
42
47
  # @return [Symbol] The configured adapter for the channel_listing.
@@ -176,6 +181,10 @@ module ErpIntegration
176
181
  @box_type_adapter || :fulfil
177
182
  end
178
183
 
184
+ def country_adapter
185
+ @country_adapter || :fulfil
186
+ end
187
+
179
188
  def channel_listing_adapter
180
189
  @channel_listing_adapter || :fulfil
181
190
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ErpIntegration
4
+ class Country < Resource
5
+ attr_accessor :id, :code, :code3, :name, :code_numeric, :subdivisions,
6
+ :attachments, :create_date, :create_uid, :metadata, :write_date, :write_uid
7
+ end
8
+ end
@@ -129,17 +129,6 @@ module ErpIntegration
129
129
  end
130
130
  end
131
131
 
132
- # Finds a list of resources by using query params to filter the results.
133
- # This method is not compatible with the `where` method since it uses
134
- # the GET HTTP method to fetch the results.
135
- #
136
- # @return [Array] An enumerable collection object with all API results.
137
- def find_with_query
138
- client.get(
139
- "model/#{model_name}?#{query_params}"
140
- ).map { |item| resource_klass.new(item) }
141
- end
142
-
143
132
  private
144
133
 
145
134
  # Builds the relative resource path and adds the context if needed.
@@ -7,7 +7,7 @@ require_relative 'or_clause'
7
7
  module ErpIntegration
8
8
  module Fulfil
9
9
  module QueryMethods
10
- attr_accessor :selected_fields, :where_clauses, :or_clauses, :query_params
10
+ attr_accessor :selected_fields, :where_clauses, :or_clauses
11
11
 
12
12
  # The `QueryMethods#select` works in two unique ways
13
13
  #
@@ -143,19 +143,6 @@ module ErpIntegration
143
143
  where(args.merge!(domain: domain))
144
144
  end
145
145
 
146
- # The `with_url_options` method provides an interface for querying resources
147
- # in Fulfil by using URL query parameters
148
- #
149
- # @example
150
- # $ ErpIntegration::SupplierShipment.with_url_options(created_at_min: Time.zone.now.iso8601).find_with_query
151
- # # => <ErpIntegration::Fulfil::Collection @items=[<ErpIntegration::SupplierShipment @id=100 />] />
152
- #
153
- def with_url_options(args)
154
- self.query_params = args.to_query
155
-
156
- self
157
- end
158
-
159
146
  def where_ilike(args)
160
147
  where(args.merge(comparison_operator: 'ilike'))
161
148
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../api_resource'
4
+
5
+ module ErpIntegration
6
+ module Fulfil
7
+ module Resources
8
+ class Country < ApiResource
9
+ self.model_name = 'country.country'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bigdecimal'
4
+ require 'date'
5
+
3
6
  module ErpIntegration
4
7
  module Fulfil
5
8
  # The `WhereClause` model encapsulates the logic for the filter options for Fulfil.
@@ -30,7 +33,7 @@ module ErpIntegration
30
33
  def initialize(key:, value:, domain: nil, comparison_operator: DEFAULT_COMPARISON_OPERATOR)
31
34
  @comparison_operator = verify_comparison_operator(comparison_operator)
32
35
  @key = key.to_s
33
- @value = value
36
+ @value = to_extended_query_value(value)
34
37
  @domain = domain
35
38
  end
36
39
 
@@ -72,6 +75,25 @@ module ErpIntegration
72
75
 
73
76
  private
74
77
 
78
+ # The {#to_extended_query_value} extends the query value into a rich
79
+ # query value to be able to query fields that contain dates, date times,
80
+ # or time values.
81
+ #
82
+ # @param query_value [Any] The input value for the where clause.
83
+ # @return [Hash|Any] The formatted input value
84
+ def to_extended_query_value(input_value)
85
+ case input_value
86
+ when DateTime # NOTE: A {DateTime} is also considered a {Date}. Filter first for a {DateTime}.
87
+ { __class__: 'datetime', iso_string: input_value.iso8601 }
88
+ when Date
89
+ { __class__: 'date', iso_string: input_value.iso8601 }
90
+ when Time
91
+ { __class__: 'time', iso_string: input_value.iso8601 }
92
+ else
93
+ input_value
94
+ end
95
+ end
96
+
75
97
  def verify_comparison_operator(comparison_operator)
76
98
  return comparison_operator if COMPARISON_OPERATORS.include?(comparison_operator)
77
99
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ErpIntegration
4
- VERSION = '0.41.0'
4
+ VERSION = '0.43.0'
5
5
  end
@@ -4,7 +4,6 @@ require 'active_support'
4
4
  require 'active_support/core_ext/string/inflections'
5
5
  require 'active_support/core_ext/module/delegation' # Allows using `delegate`
6
6
  require 'active_support/core_ext/object/blank'
7
- require 'active_support/core_ext/object/to_query'
8
7
  require 'faraday'
9
8
  require 'faraday_middleware'
10
9
  require 'json'
@@ -24,6 +23,7 @@ module ErpIntegration
24
23
  # Resources
25
24
  autoload :Carrier, 'erp_integration/carrier'
26
25
  autoload :CarrierService, 'erp_integration/carrier_service'
26
+ autoload :Country, 'erp_integration/country'
27
27
  autoload :BillOfMaterial, 'erp_integration/bill_of_material'
28
28
  autoload :BillOfMaterialInput, 'erp_integration/bill_of_material_input'
29
29
  autoload :BillOfMaterialOutput, 'erp_integration/bill_of_material_output'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erp_integration
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.41.0
4
+ version: 0.43.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Vermaas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-15 00:00:00.000000000 Z
11
+ date: 2024-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -267,6 +267,7 @@ files:
267
267
  - lib/erp_integration/carrier_service.rb
268
268
  - lib/erp_integration/channel_listing.rb
269
269
  - lib/erp_integration/configuration.rb
270
+ - lib/erp_integration/country.rb
270
271
  - lib/erp_integration/customer_shipment.rb
271
272
  - lib/erp_integration/customer_shipment_return.rb
272
273
  - lib/erp_integration/errors.rb
@@ -286,6 +287,7 @@ files:
286
287
  - lib/erp_integration/fulfil/resources/carrier.rb
287
288
  - lib/erp_integration/fulfil/resources/carrier_service.rb
288
289
  - lib/erp_integration/fulfil/resources/channel_listing.rb
290
+ - lib/erp_integration/fulfil/resources/country.rb
289
291
  - lib/erp_integration/fulfil/resources/customer_shipment.rb
290
292
  - lib/erp_integration/fulfil/resources/customer_shipment_return.rb
291
293
  - lib/erp_integration/fulfil/resources/gift_card.rb
@@ -357,7 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
357
359
  - !ruby/object:Gem::Version
358
360
  version: '0'
359
361
  requirements: []
360
- rubygems_version: 3.4.10
362
+ rubygems_version: 3.2.22
361
363
  signing_key:
362
364
  specification_version: 4
363
365
  summary: Connects Mejuri with third-party ERP vendors