erp_integration 0.41.0 → 0.42.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 +4 -4
- data/.github/workflows/pull_requests.yml +1 -1
- data/lib/erp_integration/fulfil/api_resource.rb +0 -11
- data/lib/erp_integration/fulfil/query_methods.rb +1 -14
- data/lib/erp_integration/fulfil/where_clause.rb +23 -1
- data/lib/erp_integration/version.rb +1 -1
- data/lib/erp_integration.rb +0 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2773823937835c6e7482c81e5d1615effd9e17a05646b1ac4c4a599aa1f1e779
|
4
|
+
data.tar.gz: c5815c9caf8eb43318c9d4abc6fb44cfa9024ad5844d8946785f85801ae5adaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eae9fd77ca05ea8330a552912236046bbc0d4c4e5f4e3e6da513fa43fe73ae4881a96c52b8781c75c3e72ee763058ea6f35b72b80b8797e9b04a538cbbecaaca
|
7
|
+
data.tar.gz: 59e7797efe145e5719e7ae996ed0e58055c36c0ed382d6b44ac366f91ad408117c03452d26cbc5c2046f95a4e56afef312aecf07cd1e7e94957a86667999caaf
|
@@ -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
|
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
|
|
data/lib/erp_integration.rb
CHANGED
@@ -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.
|
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-
|
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.
|
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
|