zaikio-hub 0.8.0 → 0.10.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: 334a558132d7077ca054fbdf5c085025e324d7e37061d5608bcd8e4ab11b8266
4
- data.tar.gz: cc234b4c4dbb4dfad4f0fc68cdd58091206057701b7307fa26a2cc18e6ae4705
3
+ metadata.gz: e6de6ed1ed5cb7442b72ffa036df6de0cf7f371d59d52018b4458850b7e71848
4
+ data.tar.gz: 5dc770e601267c847094fdb07875651529ec14458676c5d5be558af9c0d15c39
5
5
  SHA512:
6
- metadata.gz: c84626e8323410a6d4d4f28302ec04fc18d61ee52347ed281635cbdcc389291f9df274cf4f53e5cbf0b4086da2b478ea28b4c9bd7aa89398f495783432589c7a
7
- data.tar.gz: 75cc5d306c754be2f701e629818e65746cf0fef20dd3129af3587be68b8251b7a8b917e008c19a905842da1ed3962ba69eba22c871de431eba2c5f4f386c52c6
6
+ metadata.gz: 2b168642b4f8c6ac5607602a7e2237224e98fe52b4991c3f06b3a61591eeeacb6a6d76a60f63acaa272fe55cb9ee43f42f0a7aea871a3eeca7a2a770abc5f8ae
7
+ data.tar.gz: 4aca04231bccaf9dc4d85ebf752ef4663f365cc7bc788a8b55d979983047e4eb78e3978bf2bd28ef274186f7408ce2d5288941b08e4bdb40329ed6468ab000dc
data/CHANGELOG.md CHANGED
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.10.0] - 2022-08-15
11
+
12
+ * Update `zaikio-client-helpers` and reuse logic to use `Zaikio::Client.with_token`
13
+
14
+ ## [0.9.1] - 2022-01-05
15
+
16
+ * Fix warning about redefined methods in BasicAuthMiddleware
17
+ * Permit newer versions of Spyke & JWT gems
18
+
19
+ ## [0.9.0] - 2021-08-31
20
+
21
+ * Added `.connections` and `.apps` for `CurrentOrganization`s that are vendors
22
+
10
23
  ## [0.8.0] - 2021-08-25
11
24
 
12
25
  * Added `CurrentOrganization#create_subscription`
@@ -77,7 +90,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
90
  ### Added
78
91
  - Added subscriptions (migration required)
79
92
 
80
- [Unreleased]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.7.0..HEAD
93
+ [Unreleased]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.9.0..HEAD
94
+ [0.9.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.8.0..v0.9.0
95
+ [0.8.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.7.0..v0.8.0
81
96
  [0.7.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.6.2..v0.7.0
82
97
  [0.6.2]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.6.1..v0.6.2
83
98
  [0.6.1]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.6.0..v0.6.1
data/Rakefile CHANGED
@@ -29,9 +29,7 @@ task default: :test
29
29
 
30
30
  namespace :test do
31
31
  desc 'Runs RuboCop on specified directories'
32
- RuboCop::RakeTask.new(:rubocop) do |task|
33
- task.fail_on_error = false
34
- end
32
+ RuboCop::RakeTask.new(:rubocop)
35
33
  end
36
34
 
37
35
  Rake::Task[:test].enhance ['test:rubocop']
@@ -0,0 +1,12 @@
1
+ module Zaikio
2
+ module Hub
3
+ class App < Base
4
+ uri "apps(/:id)"
5
+
6
+ include_root_in_json :app
7
+
8
+ # Attributes
9
+ attributes :name, :category, :kind, :state, :configuration
10
+ end
11
+ end
12
+ end
@@ -4,8 +4,6 @@ require "base64"
4
4
  module Zaikio
5
5
  module Hub
6
6
  class BasicAuthMiddleware < Faraday::Middleware
7
- class_attribute :credentials
8
-
9
7
  def self.credentials
10
8
  @credentials ||= Concurrent::ThreadLocalVar.new { nil }
11
9
  @credentials.value
@@ -1,3 +1,5 @@
1
+ require "jwt"
2
+
1
3
  module Zaikio
2
4
  module Hub
3
5
  class RequestWrapper
@@ -2,38 +2,15 @@ require "logger"
2
2
 
3
3
  module Zaikio
4
4
  module Hub
5
- class Configuration
6
- HOSTS = {
7
- development: "https://hub.zaikio.test",
8
- test: "https://hub.zaikio.test",
9
- staging: "https://hub.staging.zaikio.com",
10
- sandbox: "https://hub.sandbox.zaikio.com",
11
- production: "https://hub.zaikio.com"
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::Hub environment '#{environment}'"
36
- end
5
+ class Configuration < Zaikio::Client::Helpers::Configuration
6
+ def self.hosts
7
+ {
8
+ development: "https://hub.zaikio.test/api/v1",
9
+ test: "https://hub.zaikio.test/api/v1",
10
+ staging: "https://hub.staging.zaikio.com/api/v1",
11
+ sandbox: "https://hub.sandbox.zaikio.com/api/v1",
12
+ production: "https://hub.zaikio.com/api/v1"
13
+ }.freeze
37
14
  end
38
15
  end
39
16
  end
@@ -35,6 +35,11 @@ module Zaikio
35
35
  uri: "specialists(/:id)"
36
36
  has_many :sites, class_name: "Zaikio::Hub::Site",
37
37
  uri: "sites(/:id)"
38
+ # For vendors
39
+ has_many :connections, class_name: "Zaikio::Hub::Connection",
40
+ uri: "connections(/:id)"
41
+ has_many :apps, class_name: "Zaikio::Hub::App",
42
+ uri: "apps(/:id)"
38
43
 
39
44
  def fetch
40
45
  self.attributes = get
@@ -49,11 +54,11 @@ module Zaikio
49
54
  end
50
55
 
51
56
  def create_subscription(status: "active", plan_name: nil)
52
- if Zaikio::Hub.current_token_data.subject_type == "Organization"
53
- result = self.class.request(:post, "organization/subscription",
54
- subscription: { status: status, plan_name: plan_name })
55
- Zaikio::Hub::Subscription.new(result.data)
56
- end
57
+ return unless Zaikio::Hub.current_token_data.subject_type == "Organization"
58
+
59
+ result = self.class.request(:post, "organization/subscription",
60
+ subscription: { status: status, plan_name: plan_name })
61
+ Zaikio::Hub::Subscription.new(result.data)
57
62
  end
58
63
  end
59
64
  end
@@ -1,5 +1,5 @@
1
1
  module Zaikio
2
2
  module Hub
3
- VERSION = "0.8.0".freeze
3
+ VERSION = "0.10.0".freeze
4
4
  end
5
5
  end
data/lib/zaikio/hub.rb CHANGED
@@ -3,7 +3,6 @@ require "spyke"
3
3
  require "zaikio-client-helpers"
4
4
 
5
5
  require "zaikio/hub/configuration"
6
- require "zaikio/hub/authorization_middleware"
7
6
  require "zaikio/hub/basic_auth_middleware"
8
7
 
9
8
  # Models
@@ -25,6 +24,7 @@ require "zaikio/hub/current_organization"
25
24
  require "zaikio/hub/role"
26
25
  require "zaikio/hub/revoked_access_token"
27
26
  require "zaikio/hub/connection"
27
+ require "zaikio/hub/app"
28
28
  require "zaikio/hub/subscription"
29
29
  require "zaikio/hub/test_account"
30
30
 
@@ -43,11 +43,8 @@ module Zaikio
43
43
  Base.connection = create_connection
44
44
  end
45
45
 
46
- def with_token(token)
47
- AuthorizationMiddleware.token = token
48
- yield
49
- ensure
50
- AuthorizationMiddleware.reset_token
46
+ def with_token(token, &block)
47
+ Zaikio::Client.with_token(token, &block)
51
48
  end
52
49
 
53
50
  def with_basic_auth(login, password)
@@ -58,23 +55,20 @@ module Zaikio
58
55
  end
59
56
 
60
57
  def current_token_data
61
- return unless AuthorizationMiddleware.token
58
+ return unless Zaikio::Client::Helpers::AuthorizationMiddleware.token
62
59
 
63
- payload = JWT.decode(AuthorizationMiddleware.token, nil, false).first
60
+ payload = JWT.decode(
61
+ Zaikio::Client::Helpers::AuthorizationMiddleware.token,
62
+ nil,
63
+ false
64
+ ).first
64
65
 
65
66
  create_token_data(payload)
66
67
  end
67
68
 
68
69
  def create_connection
69
- self.connection = Faraday.new(url: "#{configuration.host}/api/v1",
70
- ssl: { verify: configuration.environment != :test }) do |c|
71
- c.request :json
72
- c.response :logger, configuration&.logger, headers: false
73
- c.use Zaikio::Client::Helpers::Pagination::FaradayMiddleware
74
- c.use Zaikio::Client::Helpers::JSONParser
75
- c.use AuthorizationMiddleware
76
- c.use BasicAuthMiddleware
77
- c.adapter Faraday.default_adapter
70
+ self.connection = Zaikio::Client.create_connection(configuration).tap do |c|
71
+ c.use BasicAuthMiddleware
78
72
  end
79
73
  end
80
74
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zaikio-hub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - crispymtn
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-08-25 00:00:00.000000000 Z
13
+ date: 2022-08-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: concurrent-ruby
@@ -30,16 +30,22 @@ dependencies:
30
30
  name: jwt
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - "~>"
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: 2.2.1
36
+ - - "<"
37
+ - !ruby/object:Gem::Version
38
+ version: 2.5.0
36
39
  type: :runtime
37
40
  prerelease: false
38
41
  version_requirements: !ruby/object:Gem::Requirement
39
42
  requirements:
40
- - - "~>"
43
+ - - ">="
41
44
  - !ruby/object:Gem::Version
42
45
  version: 2.2.1
46
+ - - "<"
47
+ - !ruby/object:Gem::Version
48
+ version: 2.5.0
43
49
  - !ruby/object:Gem::Dependency
44
50
  name: multi_json
45
51
  requirement: !ruby/object:Gem::Requirement
@@ -89,7 +95,7 @@ dependencies:
89
95
  version: 5.3.4
90
96
  - - "<"
91
97
  - !ruby/object:Gem::Version
92
- version: 6.1.0
98
+ version: 6.2.0
93
99
  type: :runtime
94
100
  prerelease: false
95
101
  version_requirements: !ruby/object:Gem::Requirement
@@ -99,21 +105,21 @@ dependencies:
99
105
  version: 5.3.4
100
106
  - - "<"
101
107
  - !ruby/object:Gem::Version
102
- version: 6.1.0
108
+ version: 6.2.0
103
109
  - !ruby/object:Gem::Dependency
104
110
  name: zaikio-client-helpers
105
111
  requirement: !ruby/object:Gem::Requirement
106
112
  requirements:
107
113
  - - "~>"
108
114
  - !ruby/object:Gem::Version
109
- version: '0.2'
115
+ version: '0.3'
110
116
  type: :runtime
111
117
  prerelease: false
112
118
  version_requirements: !ruby/object:Gem::Requirement
113
119
  requirements:
114
120
  - - "~>"
115
121
  - !ruby/object:Gem::Version
116
- version: '0.2'
122
+ version: '0.3'
117
123
  description: Ruby API Client for Zaikio's Hub
118
124
  email:
119
125
  - op@crispymtn.com
@@ -129,8 +135,8 @@ files:
129
135
  - Rakefile
130
136
  - lib/zaikio/hub.rb
131
137
  - lib/zaikio/hub/address.rb
138
+ - lib/zaikio/hub/app.rb
132
139
  - lib/zaikio/hub/asset.rb
133
- - lib/zaikio/hub/authorization_middleware.rb
134
140
  - lib/zaikio/hub/base.rb
135
141
  - lib/zaikio/hub/basic_auth_middleware.rb
136
142
  - lib/zaikio/hub/business_relationship.rb
@@ -1,32 +0,0 @@
1
- require "faraday"
2
- require "jwt"
3
- require "concurrent"
4
-
5
- module Zaikio
6
- module Hub
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
- if self.class.token
24
- request_env[:request_headers]["Authorization"] = "Bearer #{self.class.token}"
25
- end
26
-
27
- @app.call(request_env).on_complete do |response_env|
28
- end
29
- end
30
- end
31
- end
32
- end