zaikio-procurement 0.2.2 → 0.3.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:
|
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
|