omniauth-cronofy 0.8.0 → 0.9.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
  SHA1:
3
- metadata.gz: 9b0524078fb30dd649fd277e61c045522abd3625
4
- data.tar.gz: 1f01a581e52d6813531e945dcd831601a81fe3e1
3
+ metadata.gz: 3e0e7501a9711c3f3d141dda702bfbf5c37ee617
4
+ data.tar.gz: 92784956009981fc95d5f9b3e45eaf13ebab8932
5
5
  SHA512:
6
- metadata.gz: bc3bcd9c0c48cc69d9ba8bc60a5c9364f79e96ee229d188860a1897262eb40af55aa026ecb54c184e7c40ad7280847e6a0afe6df9297bfc99f5ccf5b6a9f6c5d
7
- data.tar.gz: c9eb4f754a336df1e73e8099f0ef5814b9b097501f0663970194c7738e42a4e71af2cb82a67bddcf7a28b3ca7c644fc0b0521b7edde8b1abd3e986661927c3e2
6
+ metadata.gz: 943321f4df579cd5a26c705a9c954d0380c0936ec1d938391763076c9aad57eda56e4e2beaf59ffbc33971b44a5b723c2118618705e3645d38584ce798f5aac3
7
+ data.tar.gz: 488e4b202f99f511e9a911a9ecba76470642bbb92faa12deff3cd4e1e5fcc8b1f8d8b620d2269227b116cb4753d054551bfeb8452926e3ad9b5adbcef117ed50
@@ -1,5 +1,6 @@
1
1
  require "omniauth"
2
2
  require "omniauth-oauth2"
3
3
  require "omniauth-cronofy/version"
4
+ require "omniauth/strategies/cronofy_base"
4
5
  require "omniauth/strategies/cronofy"
5
6
  require "omniauth/strategies/cronofy_service_account"
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module Cronofy
3
- VERSION = '0.8.0'.freeze
3
+ VERSION = '0.9.0'.freeze
4
4
  end
5
5
  end
@@ -1,43 +1,9 @@
1
1
  module OmniAuth
2
2
  module Strategies
3
- class Cronofy < OmniAuth::Strategies::OAuth2
3
+ class Cronofy < CronofyBase
4
4
  option :name, "cronofy"
5
5
 
6
- def self.api_url
7
- @api_url ||= (ENV['CRONOFY_API_URL'] || data_centre_api_url || "https://api.cronofy.com")
8
- end
9
-
10
- def self.data_centre_api_url
11
- case ENV['CRONOFY_DATA_CENTRE']
12
- when 'de'
13
- "https://api-#{ENV['CRONOFY_DATA_CENTRE']}.cronofy.com"
14
- end
15
- end
16
-
17
- def self.api_url=(value)
18
- @api_url = value
19
- end
20
-
21
- def self.app_url
22
- @app_url ||= (ENV['CRONOFY_APP_URL'] || data_centre_app_url || "https://app.cronofy.com")
23
- end
24
-
25
- def self.data_centre_app_url
26
- case ENV['CRONOFY_DATA_CENTRE']
27
- when 'de'
28
- "https://app-#{ENV['CRONOFY_DATA_CENTRE']}.cronofy.com"
29
- end
30
- end
31
-
32
- def self.app_url=(value)
33
- @app_url = value
34
- end
35
-
36
- option :client_options, {
37
- :site => ::OmniAuth::Strategies::Cronofy.app_url
38
- }
39
-
40
- uid{ raw_info['account_id'] }
6
+ uid { raw_info['account_id'] }
41
7
 
42
8
  info do
43
9
  {
@@ -58,7 +24,7 @@ module OmniAuth
58
24
  end
59
25
 
60
26
  def raw_info
61
- @raw_info ||= access_token.get("#{::OmniAuth::Strategies::Cronofy.api_url}/v1/account").parsed['account']
27
+ @raw_info ||= access_token.get("#{client_options[:api_url]}/v1/account").parsed['account']
62
28
  end
63
29
  end
64
30
  end
@@ -0,0 +1,58 @@
1
+ module OmniAuth
2
+ module Strategies
3
+ class CronofyBase < OmniAuth::Strategies::OAuth2
4
+ option :data_center, nil
5
+
6
+ def api_url
7
+ ENV['CRONOFY_API_URL'] || data_center_url(:api, data_center_env) || "https://api.cronofy.com"
8
+ end
9
+
10
+ def app_url
11
+ ENV['CRONOFY_APP_URL'] || data_center_url(:app, data_center_env) || "https://app.cronofy.com"
12
+ end
13
+
14
+ def data_center_env
15
+ ENV['CRONOFY_DATA_CENTER'] || ENV['CRONOFY_DATA_CENTRE']
16
+ end
17
+
18
+ def data_center_url(type, value)
19
+ case value.to_s
20
+ when 'de'
21
+ "https://#{type}-#{value}.cronofy.com"
22
+ end
23
+ end
24
+
25
+ def client_options
26
+ client_options = deep_symbolize(options.client_options)
27
+
28
+ unless client_options[:site]
29
+ if options.data_center
30
+ client_options[:site] = data_center_url(:app, options.data_center)
31
+ end
32
+
33
+ unless client_options[:site]
34
+ client_options[:site] = app_url
35
+ end
36
+ end
37
+
38
+ unless client_options[:api_url]
39
+ if options.data_center
40
+ client_options[:api_url] = data_center_url(:api, options.data_center)
41
+ end
42
+
43
+ unless client_options[:api_url]
44
+ client_options[:api_url] = api_url
45
+ end
46
+ end
47
+
48
+ log :debug, "site: #{client_options[:site]}, api_url: #{client_options[:api_url]}"
49
+
50
+ client_options
51
+ end
52
+
53
+ def client
54
+ ::OAuth2::Client.new(options.client_id, options.client_secret, client_options)
55
+ end
56
+ end
57
+ end
58
+ end
@@ -1,11 +1,10 @@
1
1
  module OmniAuth
2
2
  module Strategies
3
- class CronofyServiceAccount < OmniAuth::Strategies::OAuth2
3
+ class CronofyServiceAccount < CronofyBase
4
4
  option :name, "cronofy_service_account"
5
5
 
6
6
  option :client_options, {
7
- :site => ::OmniAuth::Strategies::Cronofy.app_url,
8
- :authorize_url => "#{::OmniAuth::Strategies::Cronofy.app_url}/enterprise_connect/oauth/authorize",
7
+ :authorize_url => "/enterprise_connect/oauth/authorize",
9
8
  }
10
9
 
11
10
  def request_phase
@@ -13,7 +12,7 @@ module OmniAuth
13
12
  super
14
13
  end
15
14
 
16
- uid{ raw_info['sub'] }
15
+ uid { raw_info['sub'] }
17
16
 
18
17
  info do
19
18
  {
@@ -32,7 +31,7 @@ module OmniAuth
32
31
  end
33
32
 
34
33
  def raw_info
35
- @raw_info ||= access_token.get("#{::OmniAuth::Strategies::Cronofy.api_url}/v1/userinfo").parsed
34
+ @raw_info ||= access_token.get("#{client_options[:api_url]}/v1/userinfo").parsed
36
35
  end
37
36
  end
38
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-cronofy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Bird
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-04 00:00:00.000000000 Z
11
+ date: 2017-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth
@@ -88,6 +88,7 @@ files:
88
88
  - lib/omniauth-cronofy/version.rb
89
89
  - lib/omniauth/.DS_Store
90
90
  - lib/omniauth/strategies/cronofy.rb
91
+ - lib/omniauth/strategies/cronofy_base.rb
91
92
  - lib/omniauth/strategies/cronofy_service_account.rb
92
93
  - omniauth-cronofy.gemspec
93
94
  homepage: https://github.com/cronofy/omniauth-cronofy