calendly 0.3.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +45 -14
- data/lib/calendly/client.rb +51 -5
- data/lib/calendly/models/event_type.rb +11 -0
- data/lib/calendly/models/invitee.rb +16 -0
- data/lib/calendly/models/location.rb +50 -34
- data/lib/calendly/models/organization.rb +29 -0
- data/lib/calendly/models/user.rb +1 -1
- data/lib/calendly/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 707a9cda35428975745f73c6c9b714bda1ec4bfd769f3b21cd66cf53e45e5eee
|
4
|
+
data.tar.gz: 8d249367bc1d6ffe766adf653f624ca4d15cf7c8fa4a51cca1a2329f3cbfbdeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7685bb924251ccdaa0b93e4b95e43bd4ede147d2029ca83f1b2af1eff9f21e13a64b7acb88c5f63e1e8cfd84bcec8ba61fadbc7f577eaeb52e144ffa50fb4243
|
7
|
+
data.tar.gz: e01999d2785ebbe123ab08e63689a509ddf595433efa35b621c1d4e6bcdc94dea0b6df3fc87e2260147036cc9a85a85023c8c24e3bc6c8cd186cda16afcec92b
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,43 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 0.5.1
|
4
|
+
|
5
|
+
- added method EventType#fetch
|
6
|
+
|
7
|
+
## 0.5.0
|
8
|
+
|
9
|
+
- changed Calendly::Client#scheduled_events behavior (refs #21)
|
10
|
+
- previous version:
|
11
|
+
- getting events belonging to a specific USER
|
12
|
+
- current version:
|
13
|
+
- getting all events belonging to a specific ORGANIZATION
|
14
|
+
- added Calendly::Client#scheduled_events_by_user method instead_of the before behavior
|
15
|
+
|
16
|
+
## 0.4.2
|
17
|
+
|
18
|
+
- added new following fields to Invitee model (refs #21)
|
19
|
+
- :rescheduled
|
20
|
+
- :old_invitee
|
21
|
+
- :new_invitee
|
22
|
+
- :cancel_url
|
23
|
+
- :reschedule_url
|
24
|
+
|
25
|
+
## 0.4.1
|
26
|
+
|
27
|
+
- started to support a API
|
28
|
+
- `GET /event_types/{uuid}`
|
29
|
+
|
30
|
+
## 0.4.0
|
31
|
+
|
32
|
+
- fixed a changes for Location fields such as `kind` to `type`. (refs #18)
|
33
|
+
|
3
34
|
## 0.3.0
|
4
35
|
|
5
|
-
-
|
36
|
+
- removed zeitwerk dependency. (refs #16)
|
6
37
|
|
7
38
|
## 0.2.0
|
8
39
|
|
9
|
-
-
|
40
|
+
- added caching features in object when fetching data. (refs #14)
|
10
41
|
|
11
42
|
## 0.1.3
|
12
43
|
|
@@ -18,59 +49,59 @@
|
|
18
49
|
|
19
50
|
## 0.1.2
|
20
51
|
|
21
|
-
-
|
52
|
+
- fixed rubocop warnings.
|
22
53
|
|
23
54
|
## 0.1.1
|
24
55
|
|
25
|
-
-
|
56
|
+
- added tests to make coverage 100%.
|
26
57
|
|
27
58
|
## 0.1.0
|
28
59
|
|
29
|
-
-
|
30
|
-
-
|
60
|
+
- defined methods to access associated resources with each model.
|
61
|
+
- renamed methods:
|
31
62
|
- `Calendly::Client#events` to `Calendly::Client#scheduled_events`
|
32
63
|
|
33
64
|
## 0.0.7.alpha
|
34
65
|
|
35
|
-
- support APIs
|
66
|
+
- started to support APIs
|
36
67
|
- `POST /organizations/{uuid}/invitations`
|
37
68
|
- `DELETE /organizations/{org_uuid}/invitations/{invitation_uuid}`
|
38
69
|
- `DELETE /organization_memberships/{uuid}`
|
39
70
|
|
40
71
|
## 0.0.6.alpha
|
41
72
|
|
42
|
-
- support APIs
|
73
|
+
- started to support APIs
|
43
74
|
- `GET /organizations/{uuid}/invitations`
|
44
75
|
- `GET /organizations/{organization_uuid}/invitations/{invitation_uuid}`
|
45
76
|
|
46
77
|
## 0.0.5.alpha
|
47
78
|
|
48
|
-
- support APIs
|
79
|
+
- started to support APIs
|
49
80
|
- `GET /organization_memberships`
|
50
81
|
- `GET /organization_memberships/{uuid}`
|
51
|
-
-
|
82
|
+
- renamed fields
|
52
83
|
- Invitee#event to Invitee#event_uri
|
53
84
|
- Event#event_type to Event#event_type_uri
|
54
85
|
|
55
86
|
## 0.0.4.alpha
|
56
87
|
|
57
|
-
- support APIs
|
88
|
+
- started to support APIs
|
58
89
|
- `GET /scheduled_events/{event_uuid}/invitees`
|
59
90
|
- `GET /scheduled_events/{event_uuid}/invitees/{invitee_uuid}`
|
60
91
|
|
61
92
|
## 0.0.3.alpha
|
62
93
|
|
63
|
-
- support APIs
|
94
|
+
- started to support APIs
|
64
95
|
- `GET /scheduled_events`
|
65
96
|
- `GET /scheduled_events/{uuid}`
|
66
97
|
|
67
98
|
## 0.0.2.alpha
|
68
99
|
|
69
|
-
- support APIs
|
100
|
+
- started to support APIs
|
70
101
|
- `GET /event_types`
|
71
102
|
|
72
103
|
## 0.0.1.alpha
|
73
104
|
|
74
105
|
- Initial release
|
75
|
-
- support
|
106
|
+
- started to support a API
|
76
107
|
- `GET /users/{uuid}`
|
data/lib/calendly/client.rb
CHANGED
@@ -88,6 +88,20 @@ module Calendly
|
|
88
88
|
User.new body[:resource], self
|
89
89
|
end
|
90
90
|
|
91
|
+
#
|
92
|
+
# Returns a single Event Type by its UUID.
|
93
|
+
#
|
94
|
+
# @param [String] uuid the specified event type (event type's uuid).
|
95
|
+
# @return [Calendly::EventType]
|
96
|
+
# @raise [Calendly::Error] if the uuid arg is empty.
|
97
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
98
|
+
# @since 0.4.1
|
99
|
+
def event_type(uuid)
|
100
|
+
check_not_empty uuid, 'uuid'
|
101
|
+
body = request :get, "event_types/#{uuid}"
|
102
|
+
EventType.new body[:resource], self
|
103
|
+
end
|
104
|
+
|
91
105
|
#
|
92
106
|
# Returns all Event Types associated with a specified User.
|
93
107
|
#
|
@@ -130,10 +144,42 @@ module Calendly
|
|
130
144
|
end
|
131
145
|
|
132
146
|
#
|
133
|
-
# Get List of
|
147
|
+
# Get List of scheduled events belonging to a specific organization.
|
148
|
+
#
|
149
|
+
# @param [String] org_uri the specified organization (organization's uri).
|
150
|
+
# @param [Hash] opts the optional request parameters.
|
151
|
+
# @option opts [Integer] :count Number of rows to return.
|
152
|
+
# @option opts [String] :invitee_email Return events scheduled with the specified invitee email.
|
153
|
+
# @option opts [String] :max_start_time Upper bound (inclusive) for an event's start time to filter by.
|
154
|
+
# @option opts [String] :min_start_time Lower bound (inclusive) for an event's start time to filter by.
|
155
|
+
# @option opts [String] :page_token Pass this to get the next portion of collection.
|
156
|
+
# @option opts [String] :sort Order results by the specified field and directin. Accepts comma-separated list of {field}:{direction} values.
|
157
|
+
# @option opts [String] :status Whether the scheduled event is active or canceled.
|
158
|
+
# @return [Array<Array<Calendly::Event>, Hash>]
|
159
|
+
# - [Array<Calendly::Event>] events
|
160
|
+
# - [Hash] next_params the parameters to get next data. if thre is no next it returns nil.
|
161
|
+
# @raise [Calendly::Error] if the org_uri arg is empty.
|
162
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
163
|
+
# @since 0.5.0
|
164
|
+
def scheduled_events(org_uri, opts = {})
|
165
|
+
check_not_empty org_uri, 'org_uri'
|
166
|
+
|
167
|
+
opts_keys = %i[count invitee_email max_start_time min_start_time page_token sort status]
|
168
|
+
params = {organization: org_uri}
|
169
|
+
params = merge_options opts, opts_keys, params
|
170
|
+
body = request :get, 'scheduled_events', params: params
|
171
|
+
|
172
|
+
items = body[:collection] || []
|
173
|
+
evs = items.map { |item| Event.new item, self }
|
174
|
+
[evs, next_page_params(body)]
|
175
|
+
end
|
176
|
+
|
177
|
+
#
|
178
|
+
# Get List of scheduled events belonging to a specific user.
|
134
179
|
#
|
135
180
|
# @param [String] user_uri the specified user (user's uri).
|
136
181
|
# @param [Hash] opts the optional request parameters.
|
182
|
+
# @option opts [String] :organization the specified organization (organization's uri).
|
137
183
|
# @option opts [Integer] :count Number of rows to return.
|
138
184
|
# @option opts [String] :invitee_email Return events scheduled with the specified invitee email.
|
139
185
|
# @option opts [String] :max_start_time Upper bound (inclusive) for an event's start time to filter by.
|
@@ -147,10 +193,10 @@ module Calendly
|
|
147
193
|
# @raise [Calendly::Error] if the user_uri arg is empty.
|
148
194
|
# @raise [Calendly::ApiError] if the api returns error code.
|
149
195
|
# @since 0.0.3
|
150
|
-
def
|
196
|
+
def scheduled_events_by_user(user_uri, opts = {})
|
151
197
|
check_not_empty user_uri, 'user_uri'
|
152
198
|
|
153
|
-
opts_keys = %i[count invitee_email max_start_time min_start_time page_token sort status]
|
199
|
+
opts_keys = %i[organization count invitee_email max_start_time min_start_time page_token sort status]
|
154
200
|
params = {user: user_uri}
|
155
201
|
params = merge_options opts, opts_keys, params
|
156
202
|
body = request :get, 'scheduled_events', params: params
|
@@ -221,7 +267,7 @@ module Calendly
|
|
221
267
|
end
|
222
268
|
|
223
269
|
#
|
224
|
-
# Get List
|
270
|
+
# Get List of memberships belonging to specific an organization.
|
225
271
|
#
|
226
272
|
# @param [String] org_uri the specified organization (organization's uri).
|
227
273
|
# @param [Hash] opts the optional request parameters.
|
@@ -248,7 +294,7 @@ module Calendly
|
|
248
294
|
end
|
249
295
|
|
250
296
|
#
|
251
|
-
# Get List
|
297
|
+
# Get List of memberships belonging to specific a user.
|
252
298
|
#
|
253
299
|
# @param [String] user_uri the specified user (user's uri).
|
254
300
|
# @param [Hash] opts the optional request parameters.
|
@@ -75,6 +75,17 @@ module Calendly
|
|
75
75
|
# Whether the profile belongs to a “User” or a “Team”.
|
76
76
|
attr_accessor :owner_type
|
77
77
|
|
78
|
+
#
|
79
|
+
# Get EventType associated with self.
|
80
|
+
#
|
81
|
+
# @return [Calendly::EventType]
|
82
|
+
# @raise [Calendly::Error] if the uuid is empty.
|
83
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
84
|
+
# @since 0.5.1
|
85
|
+
def fetch
|
86
|
+
client.event_type uuid
|
87
|
+
end
|
88
|
+
|
78
89
|
private
|
79
90
|
|
80
91
|
def after_set_attributes(attrs)
|
@@ -34,6 +34,22 @@ module Calendly
|
|
34
34
|
# @return [String]
|
35
35
|
# Text (SMS) reminder phone number.
|
36
36
|
attr_accessor :text_reminder_number
|
37
|
+
# @return [Boolean]
|
38
|
+
# Indicates if this invitee has rescheduled.
|
39
|
+
# If true, a reference to the new Invitee instance is provided in the new_invitee field.
|
40
|
+
attr_accessor :rescheduled
|
41
|
+
# @return [String, nil]
|
42
|
+
# Reference to old Invitee instance that got rescheduled.
|
43
|
+
attr_accessor :old_invitee
|
44
|
+
# @return [String, nil]
|
45
|
+
# Link to new invitee, after reschedule.
|
46
|
+
attr_accessor :new_invitee
|
47
|
+
# @return [String]
|
48
|
+
# Link to cancelling the event for the invitee.
|
49
|
+
attr_accessor :cancel_url
|
50
|
+
# @return [String]
|
51
|
+
# Link to rescheduling the event for the invitee.
|
52
|
+
attr_accessor :reschedule_url
|
37
53
|
# @return [Time]
|
38
54
|
# Moment when user record was first created.
|
39
55
|
attr_accessor :created_at
|
@@ -4,51 +4,67 @@ require 'calendly/models/model_utils'
|
|
4
4
|
|
5
5
|
module Calendly
|
6
6
|
# Calendly's location model.
|
7
|
-
#
|
7
|
+
# The polymorphic base type for an event location that Calendly supports
|
8
8
|
class Location
|
9
9
|
include ModelUtils
|
10
10
|
|
11
|
+
#
|
11
12
|
# data patterns is below:
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
13
|
+
#
|
14
|
+
# 1. In-Person Meeting: Information about the physical (in-person) event location.
|
15
|
+
# @param [String] type Indicates that the event host (publisher) will call the invitee.
|
16
|
+
# @param [String] location The physical location specified by the event host (publisher).
|
17
|
+
#
|
18
|
+
# 2. Outbound Call: Meeting publisher will call the Invitee
|
19
|
+
# @param [String] type Indicates that the event host (publisher) will call the invitee.
|
20
|
+
# @param [String] location The phone number the event host (publisher) will use to call the invitee.
|
21
|
+
#
|
22
|
+
# 3. Inbound Call: Invitee will call meeting publisher at the specified phone number.
|
23
|
+
# @param [String] type Indicates that the invitee will call the event host.
|
24
|
+
# @param [String] location The phone number the invitee will use to call the event host (publisher).
|
25
|
+
#
|
26
|
+
# 4. Google Conference: Details about an Event that will take place using a Google Meet / Hangout conference.
|
27
|
+
# @param [String] type The event location is a Google Meet or Hangouts conference.
|
28
|
+
# @param [String] status Indicates the current status of the Google conference.
|
29
|
+
# @param [String] join_url Google conference meeting url.
|
30
|
+
#
|
31
|
+
# 5. Zoom Conference: Meeting will take place in a Zoom conference.
|
32
|
+
# @param [String] type The event location is a Zoom conference
|
33
|
+
# @param [String] status Indicates the current status of the Zoom conference.
|
34
|
+
# @param [String] join_url Zoom meeting url.
|
35
|
+
# @param [Hash] data The conference metadata supplied by Zoom.
|
36
|
+
#
|
37
|
+
# 6. GoToMeeting Conference: Details about an Event that will take place using a GotoMeeting conference
|
38
|
+
# @param [String] type The event location is a GoToMeeting conference.
|
39
|
+
# @param [String] status Indicates the current status of the GoToMeeting conference.
|
40
|
+
# @param [String] join_url GoToMeeting conference meeting url.
|
41
|
+
# @param [Hash] data The conference metadata supplied by GoToMeeting.
|
42
|
+
#
|
43
|
+
# 7. Microsoft Teams Conference:
|
44
|
+
# @param [String] type The event location is a Zoom conference.
|
45
|
+
# @param [String] status Indicates the current status of the Microsoft Teams conference.
|
46
|
+
# @param [String] join_url Microsoft Teams meeting url.
|
47
|
+
# @param [Hash] data The conference metadata supplied by Microsoft Teams.
|
48
|
+
#
|
49
|
+
# 8. Custom Location:
|
50
|
+
# Use this to describe an existing Calendly-supported event location.
|
51
|
+
# @param [String] type The event location doesn't fall into a standard category defined by the event host (publisher).
|
52
|
+
# @param [String] location The event location description provided by the invitee.
|
53
|
+
#
|
54
|
+
# 9. Invitee Specified Location:
|
55
|
+
# Information about an event location that’s specified by the invitee.
|
56
|
+
# @param [String] type The event location selected by the invitee.
|
57
|
+
# @param [String] location The event location description provided by the invitee.
|
40
58
|
#
|
41
59
|
|
42
60
|
# @return [String]
|
43
|
-
attr_accessor :
|
61
|
+
attr_accessor :type
|
44
62
|
# @return [String]
|
45
63
|
attr_accessor :location
|
46
64
|
# @return [String]
|
47
|
-
attr_accessor :
|
48
|
-
# @return [String]
|
49
|
-
attr_accessor :external_id
|
65
|
+
attr_accessor :status
|
50
66
|
# @return [String]
|
51
|
-
attr_accessor :
|
67
|
+
attr_accessor :join_url
|
52
68
|
# @return [Hash]
|
53
69
|
attr_accessor :data
|
54
70
|
end
|
@@ -80,6 +80,35 @@ module Calendly
|
|
80
80
|
client.create_invitation uuid, email
|
81
81
|
end
|
82
82
|
|
83
|
+
#
|
84
|
+
# Returns all Scheduled Events associated with self.
|
85
|
+
#
|
86
|
+
# @param [Hash] opts the optional request parameters.
|
87
|
+
# @option opts [Integer] :count Number of rows to return.
|
88
|
+
# @option opts [String] :invitee_email Return events scheduled with the specified invitee email
|
89
|
+
# @option opts [String] :max_start_timeUpper bound (inclusive) for an event's start time to filter by.
|
90
|
+
# @option opts [String] :min_start_time Lower bound (inclusive) for an event's start time to filter by.
|
91
|
+
# @option opts [String] :page_token Pass this to get the next portion of collection.
|
92
|
+
# @option opts [String] :sort Order results by the specified field and directin.
|
93
|
+
# Accepts comma-separated list of {field}:{direction} values.
|
94
|
+
# @option opts [String] :status Whether the scheduled event is active or canceled
|
95
|
+
# @return [Array<Calendly::Event>]
|
96
|
+
# @raise [Calendly::Error] if the uri is empty.
|
97
|
+
# @raise [Calendly::ApiError] if the api returns error code.
|
98
|
+
# @since 0.5.0
|
99
|
+
def scheduled_events(opts = {})
|
100
|
+
return @cached_scheduled_events if @cached_scheduled_events
|
101
|
+
|
102
|
+
request_proc = proc { |options| client.scheduled_events uri, options }
|
103
|
+
@cached_scheduled_events = auto_pagination request_proc, opts
|
104
|
+
end
|
105
|
+
|
106
|
+
# @since 0.5.0
|
107
|
+
def scheduled_events!(opts = {})
|
108
|
+
@cached_scheduled_events = nil
|
109
|
+
scheduled_events opts
|
110
|
+
end
|
111
|
+
|
83
112
|
#
|
84
113
|
# Get List of organization scope Webhooks associated with self.
|
85
114
|
#
|
data/lib/calendly/models/user.rb
CHANGED
@@ -116,7 +116,7 @@ module Calendly
|
|
116
116
|
def scheduled_events(opts = {})
|
117
117
|
return @cached_scheduled_events if @cached_scheduled_events
|
118
118
|
|
119
|
-
request_proc = proc { |options| client.
|
119
|
+
request_proc = proc { |options| client.scheduled_events_by_user uri, options }
|
120
120
|
@cached_scheduled_events = auto_pagination request_proc, opts
|
121
121
|
end
|
122
122
|
|
data/lib/calendly/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: calendly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenji Koshikawa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth2
|
@@ -154,7 +154,7 @@ metadata:
|
|
154
154
|
homepage_uri: https://github.com/koshilife/calendly-api-ruby-client
|
155
155
|
source_code_uri: https://github.com/koshilife/calendly-api-ruby-client
|
156
156
|
changelog_uri: https://github.com/koshilife/calendly-api-ruby-client/blob/master/CHANGELOG.md
|
157
|
-
documentation_uri: https://www.rubydoc.info/gems/calendly/0.
|
157
|
+
documentation_uri: https://www.rubydoc.info/gems/calendly/0.5.1
|
158
158
|
post_install_message:
|
159
159
|
rdoc_options: []
|
160
160
|
require_paths:
|