zoho_hub 0.1.10 → 0.1.11

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: 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