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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d2ae2dfa3fbc15ead8ce35fb7a1ef18a151f5f4cd511f5ae134492f1f5e2bb9
4
- data.tar.gz: 34f6bb97e672561ccc499770d42a8af980f7e60ca7111f351db33c195a0bcac3
3
+ metadata.gz: 9801ec4f74a47abc8bf08a21be94d5a46604a64d9e695966bf8a3d477e863b47
4
+ data.tar.gz: f575819922ae1b608395f1e2ef0d7bb0c2f809fd9fb0cdbe3580de82c0acd55d
5
5
  SHA512:
6
- metadata.gz: e6b98fd8b8e0f7d122aa9005c84ed5d2d950b91811080aef5a646d8c55740ad9fa5480364731d897448ffe9a8cbee5a3b6f8e514485002b127762558e8019b4d
7
- data.tar.gz: a73991801a999d5799304cf67a74c9483dd56c718d96a0679226adfb92e9183d922c3d33aadb64ec4219819a59061370fdfbb0be00b36bfee06681d33e10349f
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.create_contract_request(
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
- HOSTS = {
7
- development: "https://procurement.zaikio.test/api/v2/",
8
- test: "https://procurement.zaikio.test/api/v2/",
9
- staging: "https://procurement.staging.zaikio.com/api/v2/",
10
- sandbox: "https://procurement.sandbox.zaikio.com/api/v2/",
11
- production: "https://procurement.zaikio.com/api/v2/"
12
- }.freeze
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
@@ -0,0 +1,8 @@
1
+ module Zaikio
2
+ module Procurement
3
+ class LineItem < Base
4
+ # Attributes
5
+ attributes :sku_id, :amount, :unit, :palletized, :order_number
6
+ end
7
+ end
8
+ 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
@@ -1,5 +1,5 @@
1
1
  module Zaikio
2
2
  module Procurement
3
- VERSION = "2.0.1".freeze
3
+ VERSION = "2.1.1".freeze
4
4
  end
5
5
  end
@@ -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
- original_token = AuthorizationMiddleware.token
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 = Faraday.new(url: configuration.host,
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.0.1
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-08-04 00:00:00.000000000 Z
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.2'
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.2'
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