zoho_hub 0.1.10 → 0.1.11

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: 85ad0f4580d7758046129affd8819a1cc96560f0f2b4637b20647db3231de092
4
- data.tar.gz: cb637f4961be8aaec37b56624b41301911aa4102a5bda48db526f4ed7b8d6a5e
3
+ metadata.gz: e281a8267ab893eea4e24d703c925f35f8a502cd00df9fcbb8a502aec5c47c6b
4
+ data.tar.gz: d87addb71b60704a885e7afbf724aa089945450d120e815dbe89bade1b161d79
5
5
  SHA512:
6
- metadata.gz: 7ab15bd80340c46e2c8e4d2a6c68eae51bc156b65b92cd0ea3f0bf206d68923e6a5eacf8b16c355e1bc4e21d3d4212a253b394138c948824be0f811326ddb485
7
- data.tar.gz: b828374accd2189ca276a0f6de4a55b5c7c00d1d1491c09fb9aecbaecdf5fc9ea91db661570617fa5cf6c6ca2b6fba409cafdaa08e69ac5c5eccd2f742120bbd
6
+ metadata.gz: d4882911df8348e20b5b887648b6da62887cf9773511e47564ac9d405a897beb52985d23eaa6bb30bb4c2483923014a94104f84669b49fceacc965f45b551e88
7
+ data.tar.gz: ee61fc7985866b898412f755c08a19c222f33281be1f3818763f4fc7b25eb6f2fb0f88520212e47964d344616abb3a7610509cae9a6c87b49aa5cc35d0110d96
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zoho_hub (0.1.10)
4
+ zoho_hub (0.1.11)
5
5
  activesupport (~> 5.2)
6
6
  addressable (~> 2.5)
7
7
  faraday (~> 0.15)
data/lib/zoho_hub/auth.rb CHANGED
@@ -10,6 +10,7 @@ module ZohoHub
10
10
  extend Forwardable
11
11
 
12
12
  TOKEN_PATH = '/oauth/v2/token'
13
+ REVOKE_TOKEN_PATH = '/oauth/v2/token/revoke'
13
14
  AUTH_PATH = '/oauth/v2/auth'
14
15
 
15
16
  DEFAULT_SCOPES = %w[
@@ -29,18 +30,14 @@ module ZohoHub
29
30
  @scopes = scopes || DEFAULT_SCOPES
30
31
  end
31
32
 
32
- def token_full_uri
33
- Addressable::URI.join(@configuration.base_url, TOKEN_PATH)
34
- end
35
-
36
- def auth_full_uri
37
- Addressable::URI.join(@configuration.base_url, AUTH_PATH)
33
+ def self.auth_url
34
+ new.auth_url
38
35
  end
39
36
 
40
37
  def auth_url
41
38
  uri = auth_full_uri
42
39
 
43
- uri.query_values = {
40
+ query = {
44
41
  client_id: client_id,
45
42
  scope: @scopes.join(','),
46
43
  access_type: @access_type,
@@ -48,21 +45,27 @@ module ZohoHub
48
45
  response_type: 'code'
49
46
  }
50
47
 
48
+ # The consent page must be presented otherwise we don't get the refresh token back.
49
+ query[:prompt] = 'consent' if @access_type == DEFAULT_ACCESS_TYPE
50
+
51
+ uri.query_values = query
52
+
51
53
  Addressable::URI.unencode(uri.to_s)
52
54
  end
53
55
 
54
- def token_url(grant_token)
55
- uri = token_full_uri
56
+ def auth_full_uri
57
+ Addressable::URI.join(@configuration.base_url, AUTH_PATH)
58
+ end
56
59
 
57
- uri.query_values = {
58
- client_id: client_id,
59
- client_secret: secret,
60
- code: grant_token,
61
- redirect_uri: redirect_uri,
62
- grant_type: 'authorization_code'
63
- }
60
+ def self.refresh_token(refresh_token)
61
+ new.refresh_token(refresh_token)
62
+ end
64
63
 
65
- Addressable::URI.unencode(uri.to_s)
64
+ def refresh_token(refresh_token)
65
+ result = Faraday.post(refresh_url(refresh_token))
66
+
67
+ json = parse(result.body)
68
+ json.merge(refresh_token: refresh_token)
66
69
  end
67
70
 
68
71
  def refresh_url(refresh_token)
@@ -78,19 +81,16 @@ module ZohoHub
78
81
  Addressable::URI.unencode(uri.to_s)
79
82
  end
80
83
 
81
- def self.refresh_token(refresh_token)
82
- new.refresh_token(refresh_token)
84
+ def parse(body)
85
+ MultiJson.load(body, symbolize_keys: true)
83
86
  end
84
87
 
85
- def refresh_token(refresh_token)
86
- result = Faraday.post(refresh_url(refresh_token))
87
-
88
- json = parse(result.body)
89
- json.merge(refresh_token: refresh_token)
88
+ def token_full_uri
89
+ Addressable::URI.join(@configuration.base_url, TOKEN_PATH)
90
90
  end
91
91
 
92
92
  def revoke_refresh_token(refresh_token)
93
- uri = token_full_uri
93
+ uri = revoke_token_full_uri
94
94
 
95
95
  uri.query_values = { token: refresh_token }
96
96
 
@@ -101,6 +101,10 @@ module ZohoHub
101
101
  parse(result.body)
102
102
  end
103
103
 
104
+ def revoke_token_full_uri
105
+ Addressable::URI.join(@configuration.base_url, REVOKE_TOKEN_PATH)
106
+ end
107
+
104
108
  def self.get_token(grant_token)
105
109
  new.get_token(grant_token)
106
110
  end
@@ -111,8 +115,20 @@ module ZohoHub
111
115
  parse(result.body)
112
116
  end
113
117
 
114
- def parse(body)
115
- MultiJson.load(body, symbolize_keys: true)
118
+ def token_url(grant_token)
119
+ uri = token_full_uri
120
+
121
+ query = {
122
+ client_id: client_id,
123
+ client_secret: secret,
124
+ code: grant_token,
125
+ redirect_uri: redirect_uri,
126
+ grant_type: 'authorization_code'
127
+ }
128
+
129
+ uri.query_values = query
130
+
131
+ Addressable::URI.unencode(uri.to_s)
116
132
  end
117
133
  end
118
134
  end
@@ -22,7 +22,7 @@ module ZohoHub
22
22
  def initialize(access_token:, api_domain: DEFAULT_DOMAIN, expires_in: 3600, refresh_token: nil)
23
23
  @access_token = access_token
24
24
  @expires_in = expires_in
25
- @api_domain = api_domain
25
+ @api_domain = api_domain || DEFAULT_DOMAIN
26
26
  @refresh_token ||= refresh_token # do not overwrite if it's already set
27
27
  end
28
28
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ZohoHub
4
- VERSION = '0.1.10'
4
+ VERSION = '0.1.11'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zoho_hub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Otero