cronofy 0.26.1 → 0.27.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 +7 -1
- data/lib/cronofy/auth.rb +22 -0
- data/lib/cronofy/client.rb +15 -0
- data/lib/cronofy/types.rb +7 -0
- data/lib/cronofy/version.rb +1 -1
- data/spec/lib/cronofy/auth_spec.rb +43 -0
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4e2e097925e5ee3b1dce3ec0ac5dd539df7640b
|
4
|
+
data.tar.gz: 91614467858b2955a9658a23beb6c0cd9de44712
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 893a65940415df45c8e5b7c6c49c0cda2ae3302196078c20b420a29166a2a060704192b8ffbfe5926e2de9c1aafd089a698304548a09181c46124c874ea5ec74
|
7
|
+
data.tar.gz: bcfa6bbf8bfc19c637f206a29b37eedb38c3320cb7316a7878e7a0defc60891995601a9600c46a04a126d05d666a3177fbc1b834cea8151edfd6de3001bb2dc7
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
## [0.27.
|
1
|
+
## [0.27.0]
|
2
|
+
|
3
|
+
* Added support for Application Calendars [#57]
|
4
|
+
|
5
|
+
## [0.26.1]
|
2
6
|
|
3
7
|
* Prevent error when disable\_warnings not available [#56]
|
4
8
|
|
@@ -101,6 +105,7 @@
|
|
101
105
|
[0.25.1]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.25.1
|
102
106
|
[0.26.0]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.26.0
|
103
107
|
[0.26.1]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.26.1
|
108
|
+
[0.27.0]: https://github.com/cronofy/cronofy-ruby/releases/tag/v0.27.0
|
104
109
|
|
105
110
|
[#13]: https://github.com/cronofy/cronofy-ruby/pull/13
|
106
111
|
[#16]: https://github.com/cronofy/cronofy-ruby/pull/16
|
@@ -128,3 +133,4 @@
|
|
128
133
|
[#53]: https://github.com/cronofy/cronofy-ruby/pull/53
|
129
134
|
[#55]: https://github.com/cronofy/cronofy-ruby/pull/55
|
130
135
|
[#56]: https://github.com/cronofy/cronofy-ruby/pull/56
|
136
|
+
[#57]: https://github.com/cronofy/cronofy-ruby/pull/57
|
data/lib/cronofy/auth.rb
CHANGED
@@ -75,6 +75,28 @@ module Cronofy
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
+
# Internal: Obtains access to an application calendar
|
79
|
+
#
|
80
|
+
# application_calendar_id - A String to identify the application calendar
|
81
|
+
# which is to be accessed.
|
82
|
+
#
|
83
|
+
# Returns Hash of token elements to allow client to update in local store
|
84
|
+
# for user
|
85
|
+
#
|
86
|
+
# Raises Cronofy::CredentialsMissingError if no credentials available.
|
87
|
+
def application_calendar(application_calendar_id)
|
88
|
+
do_request do
|
89
|
+
body = {
|
90
|
+
client_id: @api_client.id,
|
91
|
+
client_secret: @api_client.secret,
|
92
|
+
application_calendar_id: application_calendar_id,
|
93
|
+
}
|
94
|
+
|
95
|
+
@response = @api_client.request(:post, "/v1/application_calendars", body: body)
|
96
|
+
Credentials.new(OAuth2::AccessToken.from_hash(@api_client, @response.parsed))
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
78
100
|
def set_access_token_from_auth_token(auth_token)
|
79
101
|
set_access_token(auth_token.token, auth_token.refresh_token)
|
80
102
|
end
|
data/lib/cronofy/client.rb
CHANGED
@@ -703,6 +703,21 @@ module Cronofy
|
|
703
703
|
@auth.refresh!
|
704
704
|
end
|
705
705
|
|
706
|
+
# Public: Obtains access to an application calendar
|
707
|
+
#
|
708
|
+
# See http://www.cronofy.com/developers/alpha/api#application-calendar for reference.
|
709
|
+
#
|
710
|
+
# Returns a set of Cronofy::Credentials for the account.
|
711
|
+
#
|
712
|
+
# Raises Cronofy::BadRequestError if refresh token code is unknown or has
|
713
|
+
# been revoked.
|
714
|
+
# Raises Cronofy::AuthenticationFailureError if the client ID and secret are
|
715
|
+
# not valid.
|
716
|
+
# Raises Cronofy::CredentialsMissingError if no credentials available.
|
717
|
+
def application_calendar(application_calendar_id)
|
718
|
+
@auth.application_calendar(application_calendar_id)
|
719
|
+
end
|
720
|
+
|
706
721
|
# Public: Revokes the account's refresh token and access token.
|
707
722
|
#
|
708
723
|
# After making this call the Client will become unusable. You should also
|
data/lib/cronofy/types.rb
CHANGED
@@ -35,6 +35,7 @@ module Cronofy
|
|
35
35
|
|
36
36
|
attr_reader :access_token
|
37
37
|
attr_reader :account_id
|
38
|
+
attr_reader :application_calendar_id
|
38
39
|
attr_reader :expires_at
|
39
40
|
attr_reader :expires_in
|
40
41
|
attr_reader :linking_profile
|
@@ -44,6 +45,7 @@ module Cronofy
|
|
44
45
|
def initialize(oauth_token)
|
45
46
|
@access_token = oauth_token.token
|
46
47
|
@account_id = oauth_token.params['account_id']
|
48
|
+
@application_calendar_id = oauth_token.params['application_calendar_id']
|
47
49
|
@expires_at = oauth_token.expires_at
|
48
50
|
@expires_in = oauth_token.expires_in
|
49
51
|
@refresh_token = oauth_token.refresh_token
|
@@ -67,6 +69,11 @@ module Cronofy
|
|
67
69
|
hash[:account_id] = account_id
|
68
70
|
end
|
69
71
|
|
72
|
+
if application_calendar_id
|
73
|
+
hash[:application_calendar_id] = application_calendar_id
|
74
|
+
end
|
75
|
+
|
76
|
+
|
70
77
|
if linking_profile
|
71
78
|
hash[:linking_profile] = linking_profile.to_h
|
72
79
|
end
|
data/lib/cronofy/version.rb
CHANGED
@@ -235,6 +235,49 @@ describe Cronofy::Auth do
|
|
235
235
|
end
|
236
236
|
end
|
237
237
|
|
238
|
+
describe '#application_calendar' do
|
239
|
+
let(:data_centre_override) { nil }
|
240
|
+
|
241
|
+
let(:application_calendar_id) { "apc_54475485743" }
|
242
|
+
|
243
|
+
let(:application_calendar_url) { "https://api.cronofy.com/v1/application_calendars" }
|
244
|
+
|
245
|
+
before do
|
246
|
+
stub_request(:post, application_calendar_url)
|
247
|
+
.with(
|
248
|
+
body: {
|
249
|
+
client_id: client_id,
|
250
|
+
client_secret: client_secret,
|
251
|
+
application_calendar_id: application_calendar_id,
|
252
|
+
},
|
253
|
+
)
|
254
|
+
.to_return(
|
255
|
+
status: response_status,
|
256
|
+
body: {
|
257
|
+
access_token: new_access_token,
|
258
|
+
token_type: 'bearer',
|
259
|
+
expires_in: expires_in,
|
260
|
+
refresh_token: new_refresh_token,
|
261
|
+
scope: scope,
|
262
|
+
application_calendar_id: application_calendar_id,
|
263
|
+
}.to_json,
|
264
|
+
headers: {
|
265
|
+
"Content-Type" => "application/json; charset=utf-8"
|
266
|
+
}
|
267
|
+
)
|
268
|
+
end
|
269
|
+
|
270
|
+
subject do
|
271
|
+
Cronofy::Auth.new(
|
272
|
+
client_id: client_id,
|
273
|
+
client_secret: client_secret,
|
274
|
+
data_centre: data_centre_override,
|
275
|
+
).application_calendar(application_calendar_id)
|
276
|
+
end
|
277
|
+
|
278
|
+
it_behaves_like 'an authorization request'
|
279
|
+
end
|
280
|
+
|
238
281
|
context "with linking profile" do
|
239
282
|
let(:linking_profile_hash) do
|
240
283
|
{
|
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.27.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: 2018-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oauth2
|
@@ -151,15 +151,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
151
|
version: '0'
|
152
152
|
requirements: []
|
153
153
|
rubyforge_project:
|
154
|
-
rubygems_version: 2.6.
|
154
|
+
rubygems_version: 2.6.12
|
155
155
|
signing_key:
|
156
156
|
specification_version: 4
|
157
157
|
summary: Cronofy - one API for all the calendars
|
158
158
|
test_files:
|
159
|
-
- spec/
|
159
|
+
- spec/spec_helper.rb
|
160
|
+
- spec/response_parser_spec.rb
|
160
161
|
- spec/lib/cronofy/client_spec.rb
|
161
|
-
- spec/lib/cronofy/date_or_time_spec.rb
|
162
|
-
- spec/lib/cronofy/errors_spec.rb
|
163
162
|
- spec/lib/cronofy/event_spec.rb
|
164
|
-
- spec/
|
165
|
-
- spec/
|
163
|
+
- spec/lib/cronofy/errors_spec.rb
|
164
|
+
- spec/lib/cronofy/date_or_time_spec.rb
|
165
|
+
- spec/lib/cronofy/auth_spec.rb
|