zaikio-hub 0.4.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +35 -1
- data/README.md +13 -2
- data/lib/zaikio/hub.rb +4 -2
- data/lib/zaikio/hub/base.rb +3 -1
- data/lib/zaikio/hub/client.rb +7 -0
- data/lib/zaikio/hub/connection.rb +2 -1
- data/lib/zaikio/hub/current_organization.rb +4 -2
- data/lib/zaikio/hub/current_person.rb +3 -2
- data/lib/zaikio/hub/organization.rb +3 -1
- data/lib/zaikio/hub/person.rb +3 -1
- data/lib/zaikio/hub/version.rb +1 -1
- metadata +22 -9
- data/lib/zaikio/hub/json_parser.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e562039d2b3f9feb71cd94761df5ee9beb0bb3152d6e87bcf4ee0385a6357a7
|
4
|
+
data.tar.gz: 4302ba8ecdb9493280abf4402e69f9750bb2b3ecd0294d23977bbd748a73082e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d75dfed1d42bbffdecffcf1543ecf9d9f98e2ccef507e6f2f56bfe847553e17921619273be2e7eac610f82091ef5eb586db5626d287e0877e531461db01c44e1
|
7
|
+
data.tar.gz: 23babf7a088b8aca679f11241448a8f2d468488cbe6f213dfe7280f186320d739dc6a539411bd3feaac52979d2ed458479cf1138ebe4a3e7ba21525619e60ca4
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [0.7.0] - 2021-06-18
|
11
|
+
|
12
|
+
* **BREAKING** `Relation#all` now fetches all following paginated resources by default
|
13
|
+
(endpoints which don't support pagination are unaffected).
|
14
|
+
* **BREAKING** Removed `Relation#each_page` method. You should just use the `all` method now
|
15
|
+
instead:
|
16
|
+
|
17
|
+
```diff
|
18
|
+
-Model.all.each_page.flat_map(&:to_a)
|
19
|
+
+Model.all.to_a
|
20
|
+
```
|
21
|
+
|
22
|
+
## [0.6.2] - 2021-04-27
|
23
|
+
|
24
|
+
* Include `id` property in `CurrentPerson#attributes` and `CurrentOrganization#attributes`
|
25
|
+
|
26
|
+
## [0.6.1] - 2020-04-12
|
27
|
+
|
28
|
+
* Fixed that `each_page` works correctly with client instance
|
29
|
+
|
30
|
+
## [0.6.0] - 2020-04-12
|
31
|
+
|
32
|
+
* Added pagination features for `Subscription` and `Connection`
|
33
|
+
|
34
|
+
## [0.5.0] - 2020-04-08
|
35
|
+
|
36
|
+
* Added `granted_oauth_scopes`, `requested_oauth_scopes`, and `requested_oauth_scopes_waiting_for_approval` to Person and Organization
|
37
|
+
* Added `requested_oauth_scopes`, and `requested_oauth_scopes_waiting_for_approval` to Connection
|
38
|
+
|
10
39
|
## [0.4.1] - 2020-03-04
|
11
40
|
|
12
41
|
* Add `state` property for `Zaikio::Hub::Address` model
|
@@ -44,7 +73,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
44
73
|
### Added
|
45
74
|
- Added subscriptions (migration required)
|
46
75
|
|
47
|
-
[Unreleased]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.
|
76
|
+
[Unreleased]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.7.0..HEAD
|
77
|
+
[0.7.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.6.2..v0.7.0
|
78
|
+
[0.6.2]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.6.1..v0.6.2
|
79
|
+
[0.6.1]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.6.0..v0.6.1
|
80
|
+
[0.6.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.5.0..v0.6.0
|
81
|
+
[0.5.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.4.1..v0.5.0
|
48
82
|
[0.4.1]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.4.0...v0.4.1
|
49
83
|
[0.4.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.3.0...v0.4.0
|
50
84
|
[0.3.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.2.0...v.0.3.0
|
data/README.md
CHANGED
@@ -46,8 +46,10 @@ token = "..." # Your valid JWT for an organization
|
|
46
46
|
Zaikio::Hub.with_token(token) do
|
47
47
|
organization = Zaikio::Hub::CurrentOrganization.new
|
48
48
|
|
49
|
-
# Fetch
|
49
|
+
# Fetch data
|
50
50
|
organization.memberships.find('abc')
|
51
|
+
|
52
|
+
# Note that .all understands pagination headers and will fetch all pages
|
51
53
|
organization.members.all
|
52
54
|
organization.machines.all
|
53
55
|
organization.software.all
|
@@ -122,7 +124,16 @@ client.test_accounts.create(
|
|
122
124
|
|
123
125
|
```rb
|
124
126
|
Zaikio::Hub.with_basic_auth(client_id, client_secret) do
|
125
|
-
|
127
|
+
# Get total number of records
|
128
|
+
Zaikio::Hub::Connection.per_page(10).total_count
|
129
|
+
#=> 20
|
130
|
+
|
131
|
+
# Fetch just the second page
|
132
|
+
Zaikio::Hub::Connection.per_page(10).page(2).find_some
|
133
|
+
|
134
|
+
# All
|
135
|
+
all_connections = Zaikio::Hub::Connection.all.to_a
|
136
|
+
|
126
137
|
subscription = Zaikio::Hub::Subscription.find("Organization-b1475f65-236c-58b8-96e1-e1778b43beb7")
|
127
138
|
subscription.plan # => "advanced"
|
128
139
|
subscription.activate!
|
data/lib/zaikio/hub.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require "faraday"
|
2
2
|
require "spyke"
|
3
|
+
require "zaikio-client-helpers"
|
4
|
+
|
3
5
|
require "zaikio/hub/configuration"
|
4
|
-
require "zaikio/hub/json_parser"
|
5
6
|
require "zaikio/hub/authorization_middleware"
|
6
7
|
require "zaikio/hub/basic_auth_middleware"
|
7
8
|
|
@@ -70,7 +71,8 @@ module Zaikio
|
|
70
71
|
ssl: { verify: configuration.environment != :test }) do |c|
|
71
72
|
c.request :json
|
72
73
|
c.response :logger, configuration&.logger, headers: false
|
73
|
-
c.use
|
74
|
+
c.use Zaikio::Client::Helpers::Pagination::FaradayMiddleware
|
75
|
+
c.use Zaikio::Client::Helpers::JSONParser
|
74
76
|
c.use AuthorizationMiddleware
|
75
77
|
c.use BasicAuthMiddleware
|
76
78
|
c.adapter Faraday.default_adapter
|
data/lib/zaikio/hub/base.rb
CHANGED
data/lib/zaikio/hub/client.rb
CHANGED
@@ -7,7 +7,8 @@ module Zaikio
|
|
7
7
|
|
8
8
|
# Attributes
|
9
9
|
attributes :updated_at, :created_at, :connectable_type, :connectable_id,
|
10
|
-
:app_name, :granted_oauth_scopes
|
10
|
+
:app_name, :granted_oauth_scopes, :requested_oauth_scopes,
|
11
|
+
:requested_oauth_scopes_waiting_for_approval
|
11
12
|
|
12
13
|
def initialize(attributes = {})
|
13
14
|
if attributes["connectable_id"]
|
@@ -16,9 +16,11 @@ module Zaikio
|
|
16
16
|
include_root_in_json :organization
|
17
17
|
|
18
18
|
# Attributes
|
19
|
-
attributes :name, :slug, :logo_url, :connected, :subscription,
|
19
|
+
attributes :id, :name, :slug, :logo_url, :connected, :subscription,
|
20
20
|
:created_at, :updated_at, :country_code, :kinds,
|
21
|
-
:sections, :currency, :brand_color, :test_account_owner_id
|
21
|
+
:sections, :currency, :brand_color, :test_account_owner_id,
|
22
|
+
:granted_oauth_scopes, :requested_oauth_scopes,
|
23
|
+
:requested_oauth_scopes_waiting_for_approval
|
22
24
|
|
23
25
|
# Associations
|
24
26
|
has_many :memberships, class_name: "Zaikio::Hub::Membership",
|
@@ -6,11 +6,12 @@ module Zaikio
|
|
6
6
|
uri "person"
|
7
7
|
|
8
8
|
# Attributes
|
9
|
-
attributes :updated_at, :created_at, :first_name, :name, :full_name, :email,
|
9
|
+
attributes :id, :updated_at, :created_at, :first_name, :name, :full_name, :email,
|
10
10
|
:pronoun, :locale, :country_code, :currency, :unit_system, :connected,
|
11
11
|
:test_account_owner_id, :time_zone, :email_confirmed,
|
12
12
|
:two_factor_authentication_enabled, :avatar_url, :subscription,
|
13
|
-
:accessible_apps
|
13
|
+
:accessible_apps, :granted_oauth_scopes, :requested_oauth_scopes,
|
14
|
+
:requested_oauth_scopes_waiting_for_approval
|
14
15
|
|
15
16
|
def self.find
|
16
17
|
all.find_one
|
@@ -8,7 +8,9 @@ module Zaikio
|
|
8
8
|
# Attributes
|
9
9
|
attributes :name, :slug, :logo_url, :connected, :subscription,
|
10
10
|
:created_at, :updated_at, :country_code, :kinds,
|
11
|
-
:sections, :currency, :brand_color, :test_account_owner_id
|
11
|
+
:sections, :currency, :brand_color, :test_account_owner_id,
|
12
|
+
:granted_oauth_scopes, :requested_oauth_scopes,
|
13
|
+
:requested_oauth_scopes_waiting_for_approval
|
12
14
|
|
13
15
|
# Associations
|
14
16
|
has_many :memberships, class_name: "Zaikio::Hub::Membership",
|
data/lib/zaikio/hub/person.rb
CHANGED
@@ -5,7 +5,9 @@ module Zaikio
|
|
5
5
|
attributes :updated_at, :created_at, :first_name, :name, :full_name, :email,
|
6
6
|
:pronoun, :locale, :country_code, :currency, :unit_system, :connected,
|
7
7
|
:test_account_owner_id, :time_zone, :email_confirmed,
|
8
|
-
:two_factor_authentication_enabled, :avatar_url, :subscription
|
8
|
+
:two_factor_authentication_enabled, :avatar_url, :subscription,
|
9
|
+
:granted_oauth_scopes, :requested_oauth_scopes,
|
10
|
+
:requested_oauth_scopes_waiting_for_approval
|
9
11
|
end
|
10
12
|
end
|
11
13
|
end
|
data/lib/zaikio/hub/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zaikio-hub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- crispymtn
|
8
8
|
- Jalyna Schröder
|
9
9
|
- Martin Spickermann
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-06-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: concurrent-ruby
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: 5.3.4
|
90
90
|
- - "<"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
92
|
+
version: 6.1.0
|
93
93
|
type: :runtime
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,21 @@ dependencies:
|
|
99
99
|
version: 5.3.4
|
100
100
|
- - "<"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
102
|
+
version: 6.1.0
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: zaikio-client-helpers
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
103
117
|
description: Ruby API Client for Zaikio's Hub
|
104
118
|
email:
|
105
119
|
- op@crispymtn.com
|
@@ -126,7 +140,6 @@ files:
|
|
126
140
|
- lib/zaikio/hub/connection.rb
|
127
141
|
- lib/zaikio/hub/current_organization.rb
|
128
142
|
- lib/zaikio/hub/current_person.rb
|
129
|
-
- lib/zaikio/hub/json_parser.rb
|
130
143
|
- lib/zaikio/hub/machine.rb
|
131
144
|
- lib/zaikio/hub/membership.rb
|
132
145
|
- lib/zaikio/hub/organization.rb
|
@@ -145,7 +158,7 @@ licenses:
|
|
145
158
|
- MIT
|
146
159
|
metadata:
|
147
160
|
changelog_uri: https://github.com/zaikio/zaikio-hub-ruby/blob/master/CHANGELOG.md
|
148
|
-
post_install_message:
|
161
|
+
post_install_message:
|
149
162
|
rdoc_options: []
|
150
163
|
require_paths:
|
151
164
|
- lib
|
@@ -160,8 +173,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
173
|
- !ruby/object:Gem::Version
|
161
174
|
version: '0'
|
162
175
|
requirements: []
|
163
|
-
rubygems_version: 3.1.
|
164
|
-
signing_key:
|
176
|
+
rubygems_version: 3.1.4
|
177
|
+
signing_key:
|
165
178
|
specification_version: 4
|
166
179
|
summary: Ruby API Client for Zaikio's Hub
|
167
180
|
test_files: []
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require "multi_json"
|
2
|
-
|
3
|
-
module Zaikio
|
4
|
-
module Hub
|
5
|
-
class JSONParser < Faraday::Response::Middleware
|
6
|
-
def on_complete(env)
|
7
|
-
connection_error(env) unless /^(2\d\d)|422|404$/.match?(env.status.to_s)
|
8
|
-
|
9
|
-
raise Spyke::ResourceNotFound if env.status.to_s == "404"
|
10
|
-
|
11
|
-
env.body = parse_body(env.body)
|
12
|
-
end
|
13
|
-
|
14
|
-
def connection_error(env)
|
15
|
-
Zaikio::Hub.configuration.logger
|
16
|
-
.error("Zaikio::Hub Status Code #{env.status}, #{env.body}")
|
17
|
-
raise Spyke::ConnectionError, "Status Code #{env.status}, #{env.body}"
|
18
|
-
end
|
19
|
-
|
20
|
-
def parse_body(body)
|
21
|
-
json = MultiJson.load(body, symbolize_keys: true)
|
22
|
-
{
|
23
|
-
data: json,
|
24
|
-
metadata: {},
|
25
|
-
errors: json.is_a?(Hash) ? json[:errors] : {}
|
26
|
-
}
|
27
|
-
rescue MultiJson::ParseError
|
28
|
-
{
|
29
|
-
data: {},
|
30
|
-
metadata: {},
|
31
|
-
errors: {}
|
32
|
-
}
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|