zaikio-procurement 2.0.1 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/zaikio/procurement/configuration.rb +9 -32
- data/lib/zaikio/procurement/line_item.rb +8 -0
- data/lib/zaikio/procurement/material_requirement.rb +1 -0
- data/lib/zaikio/procurement/supplier.rb +4 -4
- data/lib/zaikio/procurement/version.rb +1 -1
- data/lib/zaikio/procurement.rb +4 -16
- metadata +5 -19
- data/lib/zaikio/procurement/authorization_middleware.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9801ec4f74a47abc8bf08a21be94d5a46604a64d9e695966bf8a3d477e863b47
|
4
|
+
data.tar.gz: f575819922ae1b608395f1e2ef0d7bb0c2f809fd9fb0cdbe3580de82c0acd55d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91cb81d7e99d9d2f65b78b49d509eea1d561ef06f2611ea46af91565d131690d99ff13b7264cab982dad9e2fd764b8ff41da2128c33e4c474488e6699765b626
|
7
|
+
data.tar.gz: a8311d1754d9c5b11dd8163e628a48177fdcfd43d04249fa52da5dc273aaea90c7f7284900d471c4bb1ef58db0e589e522ddb14a309bbf5eaac13a215476e7bf
|
data/README.md
CHANGED
@@ -70,7 +70,7 @@ Zaikio::Procurement.with_token(token) do
|
|
70
70
|
|
71
71
|
# Create a ContractRequest
|
72
72
|
supplier = Zaikio::Procurement::Supplier.find("5fd82941-ba2f-4d0b-971a-7050fbbafcef")
|
73
|
-
supplier.
|
73
|
+
supplier.contract_requests.create(
|
74
74
|
customer_number: "1968353479",
|
75
75
|
contact_first_name: "Frank",
|
76
76
|
contact_last_name: "Gallikanokus",
|
@@ -2,38 +2,15 @@ require "logger"
|
|
2
2
|
|
3
3
|
module Zaikio
|
4
4
|
module Procurement
|
5
|
-
class Configuration
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
attr_accessor :host
|
15
|
-
attr_reader :environment
|
16
|
-
attr_writer :logger
|
17
|
-
|
18
|
-
def initialize
|
19
|
-
@environment = :sandbox
|
20
|
-
end
|
21
|
-
|
22
|
-
def logger
|
23
|
-
@logger ||= Logger.new($stdout)
|
24
|
-
end
|
25
|
-
|
26
|
-
def environment=(env)
|
27
|
-
@environment = env.to_sym
|
28
|
-
@host = host_for(environment)
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def host_for(environment)
|
34
|
-
HOSTS.fetch(environment) do
|
35
|
-
raise StandardError.new, "Invalid Zaikio::Procurement environment '#{environment}'"
|
36
|
-
end
|
5
|
+
class Configuration < Zaikio::Client::Helpers::Configuration
|
6
|
+
def self.hosts
|
7
|
+
{
|
8
|
+
development: "https://procurement.zaikio.test/api/v2/",
|
9
|
+
test: "https://procurement.zaikio.test/api/v2/",
|
10
|
+
staging: "https://procurement.staging.zaikio.com/api/v2/",
|
11
|
+
sandbox: "https://procurement.sandbox.zaikio.com/api/v2/",
|
12
|
+
production: "https://procurement.zaikio.com/api/v2/"
|
13
|
+
}.freeze
|
37
14
|
end
|
38
15
|
end
|
39
16
|
end
|
@@ -17,6 +17,7 @@ module Zaikio
|
|
17
17
|
has_one :quantity, class_name: "Zaikio::Procurement::Quantity", uri: nil
|
18
18
|
has_one :job, class_name: "Zaikio::Procurement::Job", uri: nil
|
19
19
|
has_one :creator, class_name: "Zaikio::Procurement::Person", uri: nil
|
20
|
+
has_many :line_items, class_name: "Zaikio::Procurement::LineItem", uri: nil
|
20
21
|
|
21
22
|
def archive
|
22
23
|
Zaikio::Procurement::MaterialRequirement.new(
|
@@ -10,15 +10,15 @@ module Zaikio
|
|
10
10
|
result.collect { |s| Zaikio::Procurement::Supplier.new(s) }
|
11
11
|
end
|
12
12
|
|
13
|
+
# Associations
|
14
|
+
has_many :contract_requests, class_name: "Zaikio::Procurement::ContractRequest",
|
15
|
+
uri: "suppliers/:supplier_id/contract_requests(/:id)"
|
16
|
+
|
13
17
|
# Attributes
|
14
18
|
attributes :slug, :name, :connected, :currency, :customer_number, :prices_updated_at,
|
15
19
|
:additional_pricing_agreements, :article_types, :automatically_accept_contract_requests,
|
16
20
|
:brand_color, :cancelation_policy, :logo_url, :maximum_days_until_delivery,
|
17
21
|
:minimum_days_before_delivery, :supports_split_delivery, :maximum_order_size, :created_at, :updated_at
|
18
|
-
|
19
|
-
def create_contract_request(attributes = {})
|
20
|
-
self.class.request(:post, "#{uri}/contract_requests", contract_request: attributes)&.body&.dig("data")
|
21
|
-
end
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
data/lib/zaikio/procurement.rb
CHANGED
@@ -2,7 +2,6 @@ require "faraday"
|
|
2
2
|
require "spyke"
|
3
3
|
require "zaikio-client-helpers"
|
4
4
|
require "zaikio/procurement/configuration"
|
5
|
-
require "zaikio/procurement/authorization_middleware"
|
6
5
|
|
7
6
|
# Models
|
8
7
|
require "zaikio/procurement/base"
|
@@ -17,6 +16,7 @@ require "zaikio/procurement/order"
|
|
17
16
|
require "zaikio/procurement/order_line_item"
|
18
17
|
require "zaikio/procurement/delivery"
|
19
18
|
require "zaikio/procurement/material_requirement"
|
19
|
+
require "zaikio/procurement/line_item"
|
20
20
|
require "zaikio/procurement/material"
|
21
21
|
require "zaikio/procurement/pricing"
|
22
22
|
require "zaikio/procurement/site"
|
@@ -40,24 +40,12 @@ module Zaikio
|
|
40
40
|
Base.connection = create_connection
|
41
41
|
end
|
42
42
|
|
43
|
-
def with_token(token)
|
44
|
-
|
45
|
-
AuthorizationMiddleware.token = token
|
46
|
-
yield
|
47
|
-
ensure
|
48
|
-
AuthorizationMiddleware.token = original_token
|
43
|
+
def with_token(token, &block)
|
44
|
+
Zaikio::Client.with_token(token, &block)
|
49
45
|
end
|
50
46
|
|
51
47
|
def create_connection
|
52
|
-
self.connection =
|
53
|
-
ssl: { verify: configuration.environment != :test }) do |c|
|
54
|
-
c.request :json
|
55
|
-
c.response :logger, configuration&.logger, headers: false
|
56
|
-
c.use Zaikio::Client::Helpers::Pagination::FaradayMiddleware
|
57
|
-
c.use Zaikio::Client::Helpers::JSONParser
|
58
|
-
c.use AuthorizationMiddleware
|
59
|
-
c.adapter Faraday.default_adapter
|
60
|
-
end
|
48
|
+
self.connection = Zaikio::Client.create_connection(configuration)
|
61
49
|
end
|
62
50
|
end
|
63
51
|
end
|
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: 2.
|
4
|
+
version: 2.1.1
|
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: 2022-
|
12
|
+
date: 2022-09-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -25,20 +25,6 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: jwt
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ">="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
42
28
|
- !ruby/object:Gem::Dependency
|
43
29
|
name: multi_json
|
44
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,14 +73,14 @@ dependencies:
|
|
87
73
|
requirements:
|
88
74
|
- - "~>"
|
89
75
|
- !ruby/object:Gem::Version
|
90
|
-
version: '0.
|
76
|
+
version: '0.3'
|
91
77
|
type: :runtime
|
92
78
|
prerelease: false
|
93
79
|
version_requirements: !ruby/object:Gem::Requirement
|
94
80
|
requirements:
|
95
81
|
- - "~>"
|
96
82
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0.
|
83
|
+
version: '0.3'
|
98
84
|
description: Ruby API Client for Zaikio's Procurement Platform
|
99
85
|
email:
|
100
86
|
- sw@zaikio.com
|
@@ -108,13 +94,13 @@ files:
|
|
108
94
|
- lib/zaikio/procurement.rb
|
109
95
|
- lib/zaikio/procurement/address.rb
|
110
96
|
- lib/zaikio/procurement/article.rb
|
111
|
-
- lib/zaikio/procurement/authorization_middleware.rb
|
112
97
|
- lib/zaikio/procurement/availability.rb
|
113
98
|
- lib/zaikio/procurement/base.rb
|
114
99
|
- lib/zaikio/procurement/configuration.rb
|
115
100
|
- lib/zaikio/procurement/contract_request.rb
|
116
101
|
- lib/zaikio/procurement/delivery.rb
|
117
102
|
- lib/zaikio/procurement/job.rb
|
103
|
+
- lib/zaikio/procurement/line_item.rb
|
118
104
|
- lib/zaikio/procurement/material.rb
|
119
105
|
- lib/zaikio/procurement/material_requirement.rb
|
120
106
|
- lib/zaikio/procurement/order.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require "faraday"
|
2
|
-
require "jwt"
|
3
|
-
require "concurrent"
|
4
|
-
|
5
|
-
module Zaikio
|
6
|
-
module Procurement
|
7
|
-
class AuthorizationMiddleware < Faraday::Middleware
|
8
|
-
def self.token
|
9
|
-
@token ||= Concurrent::ThreadLocalVar.new { nil }
|
10
|
-
@token.value
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.token=(value)
|
14
|
-
@token ||= Concurrent::ThreadLocalVar.new { nil }
|
15
|
-
@token.value = value
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.reset_token
|
19
|
-
self.token = nil
|
20
|
-
end
|
21
|
-
|
22
|
-
def call(request_env)
|
23
|
-
request_env[:request_headers]["Authorization"] = "Bearer #{self.class.token}" if self.class.token
|
24
|
-
|
25
|
-
@app.call(request_env).on_complete do |response_env|
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|