spearly-sdk-ruby 0.2.2 → 0.4.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: ab93721045a9b8f2ead92c04440eda2c8faef76403b848cf180189d472c77bc9
4
- data.tar.gz: 959156de05c9fb6b2e9c1404f7a83b2655d463bec7e50de1008f005ba3d60abe
3
+ metadata.gz: c6ca2e7efcf2a6ef0c4c933c9edd49115fc2c82c5d601c34a84c76ca87bd1602
4
+ data.tar.gz: 2e924b9bf892c8504034bf654acdda7f28d6bdc36cc01b1bc915f6333b4c5648
5
5
  SHA512:
6
- metadata.gz: 59e5178100f250cee3e175f8b7028bb5de5e63b3d626e5d85d2fcf9f8fd56f132d832af3942005b8379aa48c025ba462bbb41369133446251e415ecef248b7cd
7
- data.tar.gz: 586f8d172e9e38d1af0e7d8d50d6ed600f752ee9adb0436ac4aa3428233fb18f486bb71001e774c2853649754ef8227ed125ad2c18df27855feb1933c5adc9a7
6
+ metadata.gz: c73bf97ee424325e8032d2719e25dc38cdfd369fac1f3775af89324f152c513c1a147a3082fefe83dab2b39d03e7f303a75c4a38a54a4e7fbdc5d1fd1c564fb9
7
+ data.tar.gz: aa26cc8cb81db6f9587439fc297915deaf88c5bc61e83266390f25a9e6f37da2571de3eb17f040c12dfb8ad10d5800f8d7385ee4fb48fa813d9dc2b9527fb9fd
data/CHANGELOG.md CHANGED
@@ -1,10 +1,27 @@
1
+ ## [0.4.0] - 2021-09-13
2
+
3
+ - Error handling improvements
4
+
5
+ ## [0.3.2] - 2021-09-13
6
+
7
+ - Use the new `Spearly API v2`
8
+ - Refactors parsing `JSON` data
9
+
10
+ ## [0.2.4] - 2021-07-16
11
+
12
+ - Rescue `Signet::AuthorizationError` on `Spearly::Auth::Authorizer`
13
+
14
+ ## [0.2.3] - 2021-06-18
15
+
16
+ - Raise `Spearly::Auth::AuthorizationError` and `Spearly::Auth::ServerError` from `Spearly::Auth::User` and `Spearly::Auth::Token`
17
+
1
18
  ## [0.2.2] - 2021-06-11
2
19
 
3
- - Updates README and gem specs
20
+ - Updates `README` and gem specs
4
21
 
5
22
  ## [0.2.1] - 2021-05-31
6
23
 
7
- - Initialize Spearly::Auth::User with bearer token
24
+ - Initialize `Spearly::Auth::User` with bearer token
8
25
 
9
26
  ## [0.2.0] - 2021-05-31
10
27
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- spearly-sdk-ruby (0.2.0)
4
+ spearly-sdk-ruby (0.3.1)
5
5
  addressable (~> 2.3)
6
6
  faraday (>= 0.17.4, < 2.0)
7
7
  rake (~> 13.0)
@@ -10,24 +10,30 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- addressable (2.7.0)
13
+ addressable (2.8.0)
14
14
  public_suffix (>= 2.0.2, < 5.0)
15
15
  ast (2.4.2)
16
16
  coderay (1.1.3)
17
17
  diff-lcs (1.4.4)
18
- faraday (1.4.2)
18
+ faraday (1.7.1)
19
19
  faraday-em_http (~> 1.0)
20
20
  faraday-em_synchrony (~> 1.0)
21
21
  faraday-excon (~> 1.1)
22
+ faraday-httpclient (~> 1.0.1)
22
23
  faraday-net_http (~> 1.0)
23
24
  faraday-net_http_persistent (~> 1.1)
25
+ faraday-patron (~> 1.0)
26
+ faraday-rack (~> 1.0)
24
27
  multipart-post (>= 1.2, < 3)
25
28
  ruby2_keywords (>= 0.0.4)
26
29
  faraday-em_http (1.0.0)
27
30
  faraday-em_synchrony (1.0.0)
28
31
  faraday-excon (1.1.0)
32
+ faraday-httpclient (1.0.1)
29
33
  faraday-net_http (1.0.1)
30
- faraday-net_http_persistent (1.1.0)
34
+ faraday-net_http_persistent (1.2.0)
35
+ faraday-patron (1.0.0)
36
+ faraday-rack (1.0.0)
31
37
  jwt (2.2.3)
32
38
  method_source (1.0.0)
33
39
  multi_json (1.15.0)
@@ -40,7 +46,7 @@ GEM
40
46
  method_source (~> 1.0)
41
47
  public_suffix (4.0.6)
42
48
  rainbow (3.0.0)
43
- rake (13.0.3)
49
+ rake (13.0.6)
44
50
  regexp_parser (2.1.1)
45
51
  rexml (3.2.5)
46
52
  rspec (3.10.0)
@@ -71,9 +77,9 @@ GEM
71
77
  rubocop (~> 1.0)
72
78
  rubocop-ast (>= 1.1.0)
73
79
  ruby-progressbar (1.11.0)
74
- ruby2_keywords (0.0.4)
75
- signet (0.15.0)
76
- addressable (~> 2.3)
80
+ ruby2_keywords (0.0.5)
81
+ signet (0.16.0)
82
+ addressable (~> 2.8)
77
83
  faraday (>= 0.17.3, < 2.0)
78
84
  jwt (>= 1.5, < 3.0)
79
85
  multi_json (~> 1.10)
@@ -81,6 +87,7 @@ GEM
81
87
 
82
88
  PLATFORMS
83
89
  x86_64-darwin-20
90
+ x86_64-linux
84
91
 
85
92
  DEPENDENCIES
86
93
  pry (~> 0.13.1)
data/README.md CHANGED
@@ -7,26 +7,55 @@ Spearly SDK for Ruby.
7
7
  Add this line to your application's `Gemfile`:
8
8
 
9
9
  ```ruby
10
- gem 'spearly-sdk-ruby', '~> 0.2.2', require: 'spearly'
10
+ gem 'spearly-sdk-ruby', '~> x.y.z', require: 'spearly'
11
11
  ```
12
12
 
13
13
  And then execute:
14
14
  ```sh
15
- $ bundle install
15
+ bundle install
16
16
  ```
17
17
 
18
- Or install it yourself as:
18
+ Or install it manually:
19
19
  ```sh
20
- $ gem install spearly-sdk-ruby
20
+ gem install spearly-sdk-ruby
21
+ ```
22
+
23
+ ## Contribute
24
+ ### Increment version
25
+ ```sh
26
+ vim lib/spearly/version.rb
27
+ ```
28
+
29
+ ### Update CHANGELOG
30
+ ```sh
31
+ vim CHANGELOG.md
32
+ ```
33
+
34
+ ### Update Gemfile.lock
35
+ ```sh
36
+ bundle install
37
+ ```
38
+
39
+ ### New version commit
40
+ ```sh
41
+ new_version=$(ruby -e "require './lib/spearly/version'; puts Spearly::VERSION")
42
+
43
+ git commit -m "v$new_version"
44
+ git tag -a v$new_version -m "Release $new_version"
45
+
46
+ git push origin main
47
+ git push origin --tags
21
48
  ```
22
49
 
23
50
  ## Publish
24
51
  ### Build
25
52
  ```sh
26
- $ rake build
53
+ rake build
27
54
  ```
28
55
 
29
56
  ### Push to RubyGems
30
57
  ```sh
31
- $ gem push pkg/spearly-sdk-ruby-x.y.z.gem
58
+ new_version=$(ruby -e "require './lib/spearly/version'; puts Spearly::VERSION")
59
+
60
+ gem push pkg/spearly-sdk-ruby-$new_version.gem
32
61
  ```
@@ -12,18 +12,26 @@ module Spearly
12
12
 
13
13
  def method_missing(name, *args)
14
14
  @client.send(name, *args)
15
+ rescue Signet::AuthorizationError
16
+ raise Spearly::Auth::AuthorizationError
15
17
  end
16
18
 
17
19
  private
18
20
 
19
21
  def initialize_client
22
+ Faraday.default_connection_options = {
23
+ headers: {
24
+ 'Accept' => 'application/vnd.spearly.v2+json'
25
+ }
26
+ }
27
+
20
28
  client = ::Signet::OAuth2::Client.new
21
29
  client.client_id = @params[:client_id] || @params['client_id']
22
30
  client.client_secret = @params[:client_secret] || @params['client_secret']
23
31
  client.code = @params[:code] || @params['code']
24
32
  client.grant_type = @params[:grant_type] || @params['grant_type']
25
- client.authorization_uri = "#{ENV['SPEARLY_AUTH_API_URL']}/api/v1/oauth/authorize"
26
- client.token_credential_uri = "#{ENV['SPEARLY_AUTH_API_URL']}/api/v1/oauth/token"
33
+ client.authorization_uri = "#{ENV['SPEARLY_API_URL']}/oauth/authorize"
34
+ client.token_credential_uri = "#{ENV['SPEARLY_API_URL']}/oauth/token"
27
35
  client.redirect_uri = @params[:redirect_uri] || @params['redirect_uri']
28
36
 
29
37
  client.access_token = @params[:access_token] || @params['access_token']
@@ -6,22 +6,22 @@ require 'faraday'
6
6
  module Spearly
7
7
  module Auth
8
8
  class OauthUser
9
- attr_reader :attributes
9
+ attr_reader :data
10
10
 
11
- def initialize(attributes)
12
- @attributes = attributes
11
+ def initialize(data)
12
+ @data = data
13
13
  end
14
14
 
15
15
  def method_missing(name, *_args)
16
- @attributes[name.to_s]
16
+ @data[name.to_s]
17
17
  end
18
18
 
19
19
  def to_json(*_args)
20
- @attributes.to_json
20
+ @data.to_json
21
21
  end
22
22
 
23
23
  def as_json
24
- @attributes.as_json
24
+ @data.as_json
25
25
  end
26
26
  end
27
27
  end
@@ -13,18 +13,16 @@ module Spearly
13
13
  def spearly_token
14
14
  @spearly_token ||= begin
15
15
  token = Spearly::Auth::Token.new(request.authorization)
16
- token.info
17
16
 
18
- token
17
+ token.info ? token : nil
19
18
  end
20
19
  end
21
20
 
22
21
  def spearly_user
23
22
  @spearly_user ||= begin
24
23
  user = Spearly::Auth::User.new(request.authorization)
25
- user.find
26
24
 
27
- user
25
+ user.find ? user : nil
28
26
  end
29
27
  end
30
28
  end
@@ -6,22 +6,22 @@ require 'faraday'
6
6
  module Spearly
7
7
  module Auth
8
8
  class Team
9
- attr_reader :attributes
9
+ attr_reader :data
10
10
 
11
- def initialize(attributes)
12
- @attributes = attributes
11
+ def initialize(data)
12
+ @data = data
13
13
  end
14
14
 
15
15
  def method_missing(name, *_args)
16
- @attributes[name.to_s]
16
+ @data[name.to_s]
17
17
  end
18
18
 
19
19
  def to_json(*_args)
20
- @attributes.to_json
20
+ @data.to_json
21
21
  end
22
22
 
23
23
  def as_json
24
- @attributes.as_json
24
+ @data.as_json
25
25
  end
26
26
  end
27
27
  end
@@ -6,32 +6,33 @@ require 'faraday'
6
6
  module Spearly
7
7
  module Auth
8
8
  class Token
9
- attr_reader :attributes, :token
9
+ attr_reader :data, :token
10
10
 
11
11
  def initialize(token)
12
12
  @token = token
13
13
  end
14
14
 
15
15
  def method_missing(name, *_args)
16
- @attributes[name.to_s]
16
+ @data[name.to_s]
17
17
  end
18
18
 
19
19
  def info
20
- token_info_uri = "#{ENV['SPEARLY_AUTH_API_URL']}/api/v1/oauth/token/info"
20
+ token_info_uri = "#{ENV['SPEARLY_API_URL']}/oauth/token/info"
21
21
  url = Addressable::URI.parse(token_info_uri).normalize.to_s
22
22
  client = Faraday.default_connection
23
23
 
24
24
  res = client.get(url,
25
25
  nil,
26
+ 'Accept' => 'application/vnd.spearly.v2+json',
26
27
  'Authorization' => @token)
27
28
 
28
29
  return unless res.status == 200
29
30
 
30
- @attributes = JSON.parse(res.body)
31
+ @data = JSON.parse(res.body)
31
32
  end
32
33
 
33
34
  def revoke(params)
34
- token_revoke_uri = "#{ENV['SPEARLY_AUTH_API_URL']}/api/v1/oauth/revoke"
35
+ token_revoke_uri = "#{ENV['SPEARLY_API_URL']}/oauth/revoke"
35
36
  url = Addressable::URI.parse(token_revoke_uri).normalize.to_s
36
37
  client = Faraday.default_connection
37
38
 
@@ -46,11 +47,11 @@ module Spearly
46
47
  end
47
48
 
48
49
  def to_json(*_args)
49
- @attributes.to_json
50
+ @data.to_json
50
51
  end
51
52
 
52
53
  def as_json
53
- @attributes.as_json
54
+ @data.as_json
54
55
  end
55
56
  end
56
57
  end
@@ -6,72 +6,56 @@ require 'faraday'
6
6
  module Spearly
7
7
  module Auth
8
8
  class User
9
- attr_reader :attributes
9
+ attr_reader :data
10
10
 
11
11
  def initialize(token)
12
12
  @token = token
13
13
  end
14
14
 
15
15
  def method_missing(name, *_args)
16
- @attributes[name.to_s]
16
+ @data[name.to_s]
17
17
  end
18
18
 
19
19
  def find
20
- user_profile_uri = "#{ENV['SPEARLY_AUTH_API_URL']}/api/v1/oauth/profile"
20
+ user_profile_uri = "#{ENV['SPEARLY_API_URL']}/profile"
21
21
  url = Addressable::URI.parse(user_profile_uri).normalize.to_s
22
22
  client = Faraday.default_connection
23
23
 
24
24
  res = client.get(url,
25
25
  nil,
26
+ 'Accept' => 'application/vnd.spearly.v2+json',
26
27
  'Authorization' => @token)
27
28
 
28
29
  return unless res.status == 200
29
30
 
30
- @attributes = JSON.parse(res.body)['user']
31
+ @data = JSON.parse(res.body)['data']
31
32
  end
32
33
 
33
34
  def teams
34
- teams_uri = "#{ENV['SPEARLY_AUTH_API_URL']}/api/v1/teams"
35
+ teams_uri = "#{ENV['SPEARLY_API_URL']}/teams"
35
36
  url = Addressable::URI.parse(teams_uri).normalize.to_s
36
37
  client = Faraday.default_connection
37
38
 
38
39
  res = client.get(url,
39
40
  nil,
41
+ 'Accept' => 'application/vnd.spearly.v2+json',
40
42
  'Authorization' => @token)
41
43
 
42
- return unless res.status == 200
44
+ return [] unless res.status == 200
43
45
 
44
- team_hashes = JSON.parse(res.body)['teams']
46
+ team_hashes = JSON.parse(res.body)['data']
45
47
 
46
48
  team_hashes.map do |team_hash|
47
49
  Spearly::Auth::Team.new(team_hash)
48
50
  end
49
51
  end
50
52
 
51
- def oauth_users
52
- oauth_users_uri = "#{ENV['SPEARLY_AUTH_API_URL']}/api/v1/oauth_users"
53
- url = Addressable::URI.parse(oauth_users_uri).normalize.to_s
54
- client = Faraday.default_connection
55
-
56
- res = client.get(url,
57
- nil,
58
- 'Authorization' => @token)
59
-
60
- return unless res.status == 200
61
-
62
- oauth_user_hashes = JSON.parse(res.body)['oauth_users']
63
-
64
- oauth_user_hashes.map do |oauth_user_hash|
65
- Spearly::Auth::OauthUser.new(oauth_user_hash)
66
- end
67
- end
68
-
69
53
  def to_json(*_args)
70
- @attributes.to_json
54
+ @data.to_json
71
55
  end
72
56
 
73
57
  def as_json
74
- @attributes.as_json
58
+ @data.as_json
75
59
  end
76
60
  end
77
61
  end
data/lib/spearly/auth.rb CHANGED
@@ -11,6 +11,7 @@ module Spearly
11
11
  module Auth
12
12
  class Error < StandardError; end
13
13
  class AuthorizationError < Error; end
14
+ class ServerError < Error; end
14
15
 
15
16
  module Rails
16
17
  autoload :Helpers, 'spearly/auth/rails/helpers'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spearly
4
- VERSION = '0.2.2'
4
+ VERSION = '0.4.0'
5
5
  end
data/spearly.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
13
13
  gem.required_ruby_version = Gem::Requirement.new('>= 2.7.2')
14
14
  gem.metadata['homepage_uri'] = gem.homepage
15
15
  gem.metadata['source_code_uri'] = 'https://github.com/unimal-jp/spearly-sdk-ruby'
16
- gem.metadata['changelog_uri'] = 'https://github.com/unimal-jp/spearly-sdk-ruby/CHANGELOG.md'
16
+ gem.metadata['changelog_uri'] = "https://github.com/unimal-jp/spearly-sdk-ruby/blob/v#{Spearly::VERSION}/CHANGELOG.md"
17
17
 
18
18
  gem.files = `git ls-files`.split("\n")
19
19
  gem.executables = 'spearly'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spearly-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spearly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-11 00:00:00.000000000 Z
11
+ date: 2021-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -166,7 +166,7 @@ licenses: []
166
166
  metadata:
167
167
  homepage_uri: https://github.com/unimal-jp/spearly-sdk-ruby
168
168
  source_code_uri: https://github.com/unimal-jp/spearly-sdk-ruby
169
- changelog_uri: https://github.com/unimal-jp/spearly-sdk-ruby/CHANGELOG.md
169
+ changelog_uri: https://github.com/unimal-jp/spearly-sdk-ruby/blob/v0.4.0/CHANGELOG.md
170
170
  post_install_message:
171
171
  rdoc_options: []
172
172
  require_paths: