zaikio-procurement 0.2.2 → 0.3.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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c253fd375c7d6ff7336b6a1d8e6b132086b32358e6a23c0c02aebc2f943293ec
|
|
4
|
+
data.tar.gz: ca0da2c26956697cae57124aca5d4f99e77d6eef155c3ad36ae25ace85c72213
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: abe508a14342b486217890609ba9471feadc7c5547a6f963f47ee38ca27cc75b2bcdfb41d10e1abce8ca5c066c4198a86fa7b27c156327a5b7f601fea89b575e
|
|
7
|
+
data.tar.gz: 149171c40f18b812f824ab2812ed356ac6c30054079d8496bb3f8c6b184a0420b07bbce5e16696004124df7ccf60bfc8abe0cb1c3612d6651415fa7a637d22e1
|
data/README.md
CHANGED
|
@@ -68,6 +68,11 @@ Zaikio::Procurement.with_token(token) do
|
|
|
68
68
|
variant = Zaikio::Procurement::Variant.find("845a4d7e-db5a-46a6-9d30-bf2e884cb393")
|
|
69
69
|
variant.line_item_suggestion(amount: 10, unit: "sheet") # Returns a line item suggestion for a specifc variant
|
|
70
70
|
|
|
71
|
+
# in Supplier API one must provide a valid scope when using `Variant` or `Article`:
|
|
72
|
+
# https://docs.zaikio.com/api/procurement_suppliers/procurement.html#/Variants/get__article_type__variants__variant_id_
|
|
73
|
+
variant = Zaikio::Procurement::Variant.substrate.find("845a4d7e-db5a-46a6-9d30-bf2e884cb393")
|
|
74
|
+
variant.skus
|
|
75
|
+
|
|
71
76
|
# https://docs.zaikio.com/api/procurement_consumers/procurement.html#/LineItemSuggestions/post_suppliers__supplier_id__line_item_suggestions
|
|
72
77
|
supplier = Zaikio::Procurement::Supplier.find("b5b14aa0-ae84-452b-9719-a38545365902")
|
|
73
78
|
supplier.line_item_suggestions(
|
|
@@ -137,4 +142,4 @@ Zaikio::Directory.with_token(token) do
|
|
|
137
142
|
Zaikio::Procurement::Article.with_fallback.find("7cbf51bd-35a8-47a1-84a2-57aa63140234") # => nil
|
|
138
143
|
Zaikio::Procurement::Article.with_fallback.all # Automatically uses empty array as fallback
|
|
139
144
|
end
|
|
140
|
-
```
|
|
145
|
+
```
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
require_relative "concern/article_type_scoped"
|
|
2
|
+
|
|
1
3
|
module Zaikio
|
|
2
4
|
module Procurement
|
|
3
5
|
class Article < Base
|
|
6
|
+
include ArticleTypeScoped
|
|
4
7
|
include_root_in_json :article
|
|
5
8
|
|
|
6
9
|
# Class methods
|
|
7
10
|
class << self
|
|
8
11
|
# Spyke URI override
|
|
9
12
|
def uri
|
|
10
|
-
Zaikio::Procurement.configuration.flavor == :supplier ? "
|
|
13
|
+
Zaikio::Procurement.configuration.flavor == :supplier ? ":type/articles(/:id)" : "articles(/:id)"
|
|
11
14
|
end
|
|
12
15
|
|
|
13
16
|
def list_by_article_type_or_supplier_slug(type_or_slug)
|
|
@@ -24,8 +27,8 @@ module Zaikio
|
|
|
24
27
|
:kind, :supplier_id, :created_at, :updated_at
|
|
25
28
|
|
|
26
29
|
# Associations
|
|
27
|
-
has_one :supplier,
|
|
28
|
-
|
|
30
|
+
has_one :supplier, class_name: "Zaikio::Procurement::Supplier",
|
|
31
|
+
uri: nil
|
|
29
32
|
# Manually build variants association to work for consumers and suppliers
|
|
30
33
|
def variants
|
|
31
34
|
self.class.request(:get, "#{uri}/variants").data.collect { |v| Zaikio::Procurement::Variant.new(v) }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Zaikio
|
|
2
|
+
module Procurement
|
|
3
|
+
module ArticleTypeScoped
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
included do
|
|
6
|
+
scope :substrate, -> { where(type: :substrate) }
|
|
7
|
+
scope :plate, -> { where(type: :plate) }
|
|
8
|
+
end
|
|
9
|
+
module ClassMethods
|
|
10
|
+
def find(id)
|
|
11
|
+
if Zaikio::Procurement.configuration.flavor == :supplier &&
|
|
12
|
+
(current_scope.nil? || current_scope.params[:type].blank?)
|
|
13
|
+
raise ArgumentError, "id and type are required for #{name.demodulize} in Supplier API"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
super
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -15,13 +15,9 @@ module Zaikio
|
|
|
15
15
|
|
|
16
16
|
# Manually build variant association to work for consumers and suppliers
|
|
17
17
|
def variant
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"variants/#{variant_id}"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
Zaikio::Procurement::Variant.new(self.class.request(:get, path).data)
|
|
18
|
+
Zaikio::Procurement::Variant.new(
|
|
19
|
+
self.class.request(:get, attributes.dig("variant", "links", 0, "href")).data
|
|
20
|
+
)
|
|
25
21
|
end
|
|
26
22
|
end
|
|
27
23
|
end
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
require_relative "concern/article_type_scoped"
|
|
2
|
+
|
|
1
3
|
module Zaikio
|
|
2
4
|
module Procurement
|
|
3
5
|
class Variant < Base
|
|
6
|
+
include ArticleTypeScoped
|
|
4
7
|
include_root_in_json :variant
|
|
5
8
|
|
|
6
9
|
# Spyke URI override
|
|
7
10
|
def self.uri
|
|
8
|
-
Zaikio::Procurement.configuration.flavor == :supplier ? "
|
|
11
|
+
Zaikio::Procurement.configuration.flavor == :supplier ? ":type/variants(/:id)" : "variants(/:id)"
|
|
9
12
|
end
|
|
10
13
|
|
|
11
14
|
# Attributes
|
|
@@ -16,8 +19,8 @@ module Zaikio
|
|
|
16
19
|
# Associations
|
|
17
20
|
has_one :article, class_name: "Zaikio::Procurement::Article",
|
|
18
21
|
uri: nil
|
|
19
|
-
has_many :skus,
|
|
20
|
-
|
|
22
|
+
has_many :skus, class_name: "Zaikio::Procurement::Sku",
|
|
23
|
+
uri: "variants/:variant_id/skus"
|
|
21
24
|
|
|
22
25
|
def line_item_suggestion(**attributes)
|
|
23
26
|
self.class.request(
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zaikio-procurement
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Zaikio GmbH
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2021-10-
|
|
12
|
+
date: 2021-10-28 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: concurrent-ruby
|
|
@@ -109,6 +109,7 @@ files:
|
|
|
109
109
|
- lib/zaikio/procurement/article.rb
|
|
110
110
|
- lib/zaikio/procurement/authorization_middleware.rb
|
|
111
111
|
- lib/zaikio/procurement/base.rb
|
|
112
|
+
- lib/zaikio/procurement/concern/article_type_scoped.rb
|
|
112
113
|
- lib/zaikio/procurement/configuration.rb
|
|
113
114
|
- lib/zaikio/procurement/contract.rb
|
|
114
115
|
- lib/zaikio/procurement/contract_request.rb
|
|
@@ -149,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
149
150
|
- !ruby/object:Gem::Version
|
|
150
151
|
version: '0'
|
|
151
152
|
requirements: []
|
|
152
|
-
rubygems_version: 3.
|
|
153
|
+
rubygems_version: 3.2.22
|
|
153
154
|
signing_key:
|
|
154
155
|
specification_version: 4
|
|
155
156
|
summary: Ruby API Client for Zaikio's Procurement Platform
|