zaikio-hub 0.8.0 → 0.10.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: 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