erp_integration 0.41.0 → 0.42.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: 3364aa85a9b1d3b5c6fdf8085e91b8727020772f979331448e8b31ae918e52d8
4
- data.tar.gz: 2222316cc1daedb2866a69f9dffbce135b5531bcadd3e4efdb3eb5737ade6263
3
+ metadata.gz: 2773823937835c6e7482c81e5d1615effd9e17a05646b1ac4c4a599aa1f1e779
4
+ data.tar.gz: c5815c9caf8eb43318c9d4abc6fb44cfa9024ad5844d8946785f85801ae5adaa
5
5
  SHA512:
6
- metadata.gz: 463e2af9f9c6748f5e38555dce0bf51e25991b9c565a3edb4cb6f7bbf873d9fc72a5a97a725a568a47a623fd917985c3e3a0c1c14d612b850b2420e579878886
7
- data.tar.gz: 5c37a546111331bf5db94c5f0ce57349461724ff2ea4d91f458b5c1505115c0a4cd899c7f706c44c57a245cf5acc2d06028e88251ce7f73994a6b077fd5a8990
6
+ metadata.gz: eae9fd77ca05ea8330a552912236046bbc0d4c4e5f4e3e6da513fa43fe73ae4881a96c52b8781c75c3e72ee763058ea6f35b72b80b8797e9b04a538cbbecaaca
7
+ data.tar.gz: 59e7797efe145e5719e7ae996ed0e58055c36c0ed382d6b44ac366f91ad408117c03452d26cbc5c2046f95a4e56afef312aecf07cd1e7e94957a86667999caaf
@@ -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*\](\ )'
@@ -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
@@ -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.42.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'
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.42.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-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -357,7 +357,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
357
357
  - !ruby/object:Gem::Version
358
358
  version: '0'
359
359
  requirements: []
360
- rubygems_version: 3.4.10
360
+ rubygems_version: 3.2.22
361
361
  signing_key:
362
362
  specification_version: 4
363
363
  summary: Connects Mejuri with third-party ERP vendors