zaikio-client-helpers 0.2.4 → 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: d00d304ca27fb927748ae92d163e44c1254a6a9b6c7cd2616fdc32e8cd08dc38
4
- data.tar.gz: cbbe9e8df3357f9e1bfdb7defc4e14d20808add68608138d60684e2af78b2e08
3
+ metadata.gz: a7c1175b44ca6b5ce9c35a6c24e3c2c546da668af38553303510b6e3ebb549f5
4
+ data.tar.gz: 57f77bce22039beedee0f51da1ff1655dc3e602de987d3d13ce594337e5f37c0
5
5
  SHA512:
6
- metadata.gz: 24eebf4cafa1afd04326db5f23b2d8518e2c1633607e5d8c54bcdf768b576ac5e7b3a266ac495c85ab73e6f167dfca7b545d41d802f3fd6777e8df417af35590
7
- data.tar.gz: 51c4e0d201584c3d0701bffb3942a219d2d40312f946f4b75b11e43ccf00acc06369553b8ee6bdef182766f07137b38e52ef6520e4319c8e33ee55f44d008753
6
+ metadata.gz: 1eeb54b3661b5aa9d7730fa2751e1632273a63011cf3259f7db5df8228bd9b1208951b692332a54bf449750f1bde6ef8ea23f97d3927c896f96042a628e7d508
7
+ data.tar.gz: a22972654c7b0a53f5844a7005d3afb08345cfab355d5493ff58c99fb2e28030f54854bc8bdb32aec118723470df0cd58d98ba101feaf1e04ff16f6295eceb3b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.3.0] - 2022-08-15
4
+
5
+ - Add `Zaikio::Client::Helpers::AuthorizationMiddleware` and `Zaikio::Client.with_token` to pass down bearer token to multiple clients (e.g. hub + procurement) at the same time
6
+ - Add `Zaikio::Client::Helpers::Configuration` as an abstract configuration class
7
+ - Add `Zaikio::Client.create_connection`
8
+
3
9
  ## [0.2.4] - 2022-03-29
4
10
 
5
11
  - Add support for Faraday 2.x
@@ -0,0 +1,27 @@
1
+ require "faraday"
2
+
3
+ module Zaikio
4
+ module Client
5
+ module Helpers
6
+ class AuthorizationMiddleware < Faraday::Middleware
7
+ def self.token
8
+ Thread.current[:zaikio_client_access_token]
9
+ end
10
+
11
+ def self.token=(value)
12
+ Thread.current[:zaikio_client_access_token] = value
13
+ end
14
+
15
+ def self.reset_token
16
+ Thread.current[:zaikio_client_access_token] = nil
17
+ end
18
+
19
+ def call(request_env)
20
+ request_env[:request_headers]["Authorization"] = "Bearer #{self.class.token}" if self.class.token
21
+
22
+ @app.call(request_env)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,38 @@
1
+ require "logger"
2
+
3
+ module Zaikio
4
+ module Client
5
+ module Helpers
6
+ class Configuration
7
+ attr_accessor :host
8
+ attr_reader :environment
9
+ attr_writer :logger
10
+
11
+ def self.hosts
12
+ raise NotImplementedError
13
+ end
14
+
15
+ def initialize
16
+ self.environment = :sandbox
17
+ end
18
+
19
+ def logger
20
+ @logger ||= Logger.new($stdout)
21
+ end
22
+
23
+ def environment=(env)
24
+ @environment = env.to_sym
25
+ @host = host_for(environment)
26
+ end
27
+
28
+ private
29
+
30
+ def host_for(environment)
31
+ self.class.hosts.fetch(environment) do
32
+ raise "Invalid Zaikio::Client environment '#{environment}'"
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -3,7 +3,7 @@
3
3
  module Zaikio
4
4
  module Client
5
5
  module Helpers
6
- VERSION = "0.2.4"
6
+ VERSION = "0.3.0"
7
7
  end
8
8
  end
9
9
  end
@@ -0,0 +1,31 @@
1
+ require "zaikio/client/model"
2
+ require "zaikio/client/helpers/json_parser"
3
+ require "zaikio/client/helpers/pagination"
4
+ require "zaikio/client/helpers/configuration"
5
+ require "zaikio/client/helpers/authorization_middleware"
6
+
7
+ module Zaikio
8
+ module Client
9
+ class << self
10
+ def with_token(token)
11
+ original_token = Helpers::AuthorizationMiddleware.token
12
+ Helpers::AuthorizationMiddleware.token = token
13
+ yield
14
+ ensure
15
+ Helpers::AuthorizationMiddleware.token = original_token
16
+ end
17
+
18
+ def create_connection(configuration)
19
+ Faraday.new(url: configuration.host,
20
+ ssl: { verify: configuration.environment != :test }) do |c|
21
+ c.request :json
22
+ c.response :logger, configuration&.logger, headers: false
23
+ c.use Zaikio::Client::Helpers::Pagination::FaradayMiddleware
24
+ c.use Zaikio::Client::Helpers::JSONParser
25
+ c.use Zaikio::Client::Helpers::AuthorizationMiddleware
26
+ c.adapter Faraday.default_adapter
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -3,6 +3,4 @@
3
3
  require_relative "zaikio/client/helpers/version"
4
4
 
5
5
  require_relative "zaikio/error"
6
- require_relative "zaikio/client/model"
7
- require_relative "zaikio/client/helpers/json_parser"
8
- require_relative "zaikio/client/helpers/pagination"
6
+ require_relative "zaikio/client"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zaikio-client-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zaikio GMBH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-29 00:00:00.000000000 Z
11
+ date: 2022-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -98,6 +98,9 @@ files:
98
98
  - README.md
99
99
  - Rakefile
100
100
  - lib/zaikio-client-helpers.rb
101
+ - lib/zaikio/client.rb
102
+ - lib/zaikio/client/helpers/authorization_middleware.rb
103
+ - lib/zaikio/client/helpers/configuration.rb
101
104
  - lib/zaikio/client/helpers/json_parser.rb
102
105
  - lib/zaikio/client/helpers/pagination.rb
103
106
  - lib/zaikio/client/helpers/version.rb