cronofy 0.37.6 → 0.40.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 +4 -4
- data/CHANGELOG.md +23 -0
- data/cronofy.gemspec +2 -2
- data/lib/cronofy/api_key.rb +1 -0
- data/lib/cronofy/auth.rb +2 -2
- data/lib/cronofy/client.rb +21 -2
- data/lib/cronofy/types.rb +3 -0
- data/lib/cronofy/version.rb +1 -1
- data/spec/lib/cronofy/client_spec.rb +31 -3
- data/spec/spec_helper.rb +1 -0
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0407eb888cfab38dd60d84ad456d367da62d5021947bc9d7ccc1d66e8da8e3df
|
4
|
+
data.tar.gz: 24b3171b4e992004138871f4f30f92e840b22a6ef76bab5c7ec4f59574794ac1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3e3d97475b91569ff5247604a4cdfc0b975d6a9aa1199e20b2e86e85d3b5e3060bfe193d12fe694a27432f79dba2d417580a25e46de3129cf7bd83d8c621f9d
|
7
|
+
data.tar.gz: db4b9e733ae6acee75880ff0fe72e5e6d42713d9c725d8211552647d1c2ec421628b5211222d2f3070ecbce2e6bd0682c1b74dfd2186c6f9d40a7996e9a4dc18
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
## [0.40.0]
|
2
|
+
|
3
|
+
* Update version of [OAuth2](https://rubygems.org/gems/oauth2) required [#102]
|
4
|
+
|
5
|
+
## [0.39.0]
|
6
|
+
|
7
|
+
* Add conferencing services authorization
|
8
|
+
|
9
|
+
## [0.38.0]
|
10
|
+
|
11
|
+
* Add state parameter to Service Account authorizations [#104]
|
12
|
+
|
13
|
+
## [0.37.7]
|
14
|
+
|
15
|
+
* Update Gem description
|
16
|
+
|
1
17
|
## [0.37.6]
|
2
18
|
|
3
19
|
* Adds support for disabling and fetching the status of Real-Time Scheduling links [#100]
|
@@ -207,6 +223,10 @@
|
|
207
223
|
[0.37.4]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.37.4
|
208
224
|
[0.37.5]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.37.5
|
209
225
|
[0.37.6]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.37.6
|
226
|
+
[0.37.7]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.37.7
|
227
|
+
[0.38.0]: https://github.com/cronofy/cronofy-ruby/releases/tag/0.38.0
|
228
|
+
[0.39.0]: https://github.com/cronofy/cronofy-ruby/releases/tag/0.39.0
|
229
|
+
[0.40.0]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.40.0
|
210
230
|
|
211
231
|
[#13]: https://github.com/cronofy/cronofy-ruby/pull/13
|
212
232
|
[#16]: https://github.com/cronofy/cronofy-ruby/pull/16
|
@@ -255,3 +275,6 @@
|
|
255
275
|
[#97]: https://github.com/cronofy/cronofy-ruby/pull/97
|
256
276
|
[#99]: https://github.com/cronofy/cronofy-ruby/pull/99
|
257
277
|
[#100]: https://github.com/cronofy/cronofy-ruby/pull/100
|
278
|
+
[#102]: https://github.com/cronofy/cronofy-ruby/pull/102
|
279
|
+
[#104]: https://github.com/cronofy/cronofy-ruby/pull/104
|
280
|
+
[#108]: https://github.com/cronofy/cronofy-ruby/pull/108
|
data/cronofy.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.authors = ["Sergii Paryzhskyi", "Garry Shutler"]
|
7
7
|
spec.email = ["parizhskiy@gmail.com", "garry@cronofy.com"]
|
8
8
|
spec.summary = %q{Cronofy - the scheduling platform for business}
|
9
|
-
spec.description = %q{
|
9
|
+
spec.description = %q{SDK for Cronofy - the Scheduling Platform for Business}
|
10
10
|
spec.homepage = "https://github.com/cronofy/cronofy-ruby"
|
11
11
|
spec.license = "MIT"
|
12
12
|
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = Dir['spec/**/*.rb']
|
19
19
|
|
20
20
|
spec.add_runtime_dependency "hashie", ">= 2.1", "< 5"
|
21
|
-
spec.add_runtime_dependency "oauth2", "
|
21
|
+
spec.add_runtime_dependency "oauth2", ">= 2.0.4"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", ">= 1.6", "< 3"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
data/lib/cronofy/api_key.rb
CHANGED
data/lib/cronofy/auth.rb
CHANGED
@@ -16,8 +16,8 @@ module Cronofy
|
|
16
16
|
|
17
17
|
@client_credentials_missing = blank?(client_id) || blank?(client_secret)
|
18
18
|
|
19
|
-
@auth_client = OAuth2::Client.new(client_id, client_secret, site: ::Cronofy.app_url(data_center), connection_opts: { headers: { "User-Agent" => "Cronofy Ruby #{::Cronofy::VERSION}" } })
|
20
|
-
@api_client = OAuth2::Client.new(client_id, client_secret, site: ::Cronofy.api_url(data_center), connection_opts: { headers: { "User-Agent" => "Cronofy Ruby #{::Cronofy::VERSION}" } })
|
19
|
+
@auth_client = OAuth2::Client.new(client_id, client_secret, site: ::Cronofy.app_url(data_center), auth_scheme: :request_body, connection_opts: { headers: { "User-Agent" => "Cronofy Ruby #{::Cronofy::VERSION}" } })
|
20
|
+
@api_client = OAuth2::Client.new(client_id, client_secret, site: ::Cronofy.api_url(data_center), auth_scheme: :request_body, connection_opts: { headers: { "User-Agent" => "Cronofy Ruby #{::Cronofy::VERSION}" } })
|
21
21
|
|
22
22
|
set_access_token(access_token, refresh_token) if access_token || refresh_token
|
23
23
|
set_api_key(client_secret) if client_secret
|
data/lib/cronofy/client.rb
CHANGED
@@ -312,6 +312,24 @@ module Cronofy
|
|
312
312
|
nil
|
313
313
|
end
|
314
314
|
|
315
|
+
# Public: Returns an URL where users can authorize access to their conferencing services.
|
316
|
+
#
|
317
|
+
# See https://docs.cronofy.com/developers/api/conferencing-services/authorization/ for reference.
|
318
|
+
#
|
319
|
+
# Returns Cronofy::ConferencingServiceAuthorizationResponse with the generated URL
|
320
|
+
#
|
321
|
+
# Raises Cronofy::BadRequestError if refresh token code is unknown or has
|
322
|
+
# been revoked.
|
323
|
+
# Raises Cronofy::AuthenticationFailureError if the client ID and secret are
|
324
|
+
# not valid.
|
325
|
+
# Raises Cronofy::CredentialsMissingError if no credentials available.
|
326
|
+
def get_conferencing_service_authorizations(redirect_uri)
|
327
|
+
data = { redirect_uri: redirect_uri }
|
328
|
+
|
329
|
+
response = post "/v1/conferencing_service_authorizations", data
|
330
|
+
parse_json(ConferencingServiceAuthorizationResponse, "authorization_request", response)
|
331
|
+
end
|
332
|
+
|
315
333
|
class BatchBuilder
|
316
334
|
include TimeEncoding
|
317
335
|
|
@@ -641,7 +659,7 @@ module Cronofy
|
|
641
659
|
# longer valid.
|
642
660
|
# Raises Cronofy::TooManyRequestsError if the request exceeds the rate
|
643
661
|
# limits for the application.
|
644
|
-
def authorize_with_service_account(email, scope, callback_url)
|
662
|
+
def authorize_with_service_account(email, scope, callback_url, state)
|
645
663
|
if scope.respond_to?(:join)
|
646
664
|
scope = scope.join(' ')
|
647
665
|
end
|
@@ -649,7 +667,8 @@ module Cronofy
|
|
649
667
|
params = {
|
650
668
|
email: email,
|
651
669
|
scope: scope,
|
652
|
-
callback_url: callback_url
|
670
|
+
callback_url: callback_url,
|
671
|
+
state: state
|
653
672
|
}
|
654
673
|
post("/v1/service_account_authorizations", params)
|
655
674
|
nil
|
data/lib/cronofy/types.rb
CHANGED
data/lib/cronofy/version.rb
CHANGED
@@ -658,14 +658,15 @@ describe Cronofy::Client do
|
|
658
658
|
let(:request_url) { "https://api.cronofy.com/v1/service_account_authorizations" }
|
659
659
|
let(:method) { :post }
|
660
660
|
let(:request_headers) { json_request_headers }
|
661
|
-
let(:request_body) { { email: email, scope: scope.join(' '), callback_url: callback_url } }
|
661
|
+
let(:request_body) { { email: email, scope: scope.join(' '), callback_url: callback_url, state: state } }
|
662
662
|
let(:correct_response_code) { 202 }
|
663
663
|
let(:correct_response_body) { nil }
|
664
664
|
let(:email) { "foo@example.com" }
|
665
665
|
let(:scope) { ['foo', 'bar'] }
|
666
|
-
let(:callback_url) { "
|
666
|
+
let(:callback_url) { "https://example.com/callback" }
|
667
|
+
let(:state) { 'state' }
|
667
668
|
|
668
|
-
subject { client.authorize_with_service_account(email, scope, callback_url) }
|
669
|
+
subject { client.authorize_with_service_account(email, scope, callback_url, state) }
|
669
670
|
|
670
671
|
it_behaves_like 'a Cronofy request'
|
671
672
|
end
|
@@ -3709,4 +3710,31 @@ describe Cronofy::Client do
|
|
3709
3710
|
it_behaves_like 'a Cronofy request'
|
3710
3711
|
it_behaves_like 'a Cronofy request with mapped return value'
|
3711
3712
|
end
|
3713
|
+
|
3714
|
+
describe 'Conferencing Services' do
|
3715
|
+
describe '#get_conferencing_service_authorizations' do
|
3716
|
+
let(:redirect_uri) { "http://example.com/not_found" }
|
3717
|
+
let(:request_url) { "https://api.cronofy.com/v1/conferencing_service_authorizations" }
|
3718
|
+
let(:method) { :post }
|
3719
|
+
let(:request_body) {
|
3720
|
+
{ redirect_uri: redirect_uri }
|
3721
|
+
}
|
3722
|
+
let(:correct_response_code) { 200 }
|
3723
|
+
let(:correct_response_body) do
|
3724
|
+
{
|
3725
|
+
"authorization_request" => {
|
3726
|
+
"url": "https://app.cronofy.com/conferencing_services/foo"
|
3727
|
+
}
|
3728
|
+
}
|
3729
|
+
end
|
3730
|
+
let(:correct_mapped_result) do
|
3731
|
+
Cronofy::ConferencingServiceAuthorizationResponse.new(correct_response_body['authorization_request'])
|
3732
|
+
end
|
3733
|
+
|
3734
|
+
subject { client.get_conferencing_service_authorizations(redirect_uri) }
|
3735
|
+
|
3736
|
+
it_behaves_like 'a Cronofy request'
|
3737
|
+
it_behaves_like 'a Cronofy request with mapped return value'
|
3738
|
+
end
|
3739
|
+
end
|
3712
3740
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cronofy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.40.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergii Paryzhskyi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-05-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|
@@ -35,16 +35,16 @@ dependencies:
|
|
35
35
|
name: oauth2
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.0.4
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.0.4
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: bundler
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,7 +107,7 @@ dependencies:
|
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: 3.9.1
|
110
|
-
description:
|
110
|
+
description: SDK for Cronofy - the Scheduling Platform for Business
|
111
111
|
email:
|
112
112
|
- parizhskiy@gmail.com
|
113
113
|
- garry@cronofy.com
|
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
158
|
requirements: []
|
159
|
-
rubygems_version: 3.
|
159
|
+
rubygems_version: 3.1.4
|
160
160
|
signing_key:
|
161
161
|
specification_version: 4
|
162
162
|
summary: Cronofy - the scheduling platform for business
|