calendlyr 0.7.4 → 0.10.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.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -5
  3. data/.gitignore +2 -1
  4. data/CHANGELOG.md +66 -0
  5. data/README.md +31 -79
  6. data/calendlyr.gemspec +6 -7
  7. data/docs/resources/data_compliance.md +1 -1
  8. data/docs/resources/event_types/availability_schedule.md +28 -0
  9. data/docs/resources/event_types/event_type.md +18 -7
  10. data/docs/resources/events/cancellation.md +1 -1
  11. data/docs/resources/events/event.md +2 -2
  12. data/docs/resources/events/invitee.md +17 -0
  13. data/docs/resources/locations/location.md +16 -0
  14. data/docs/resources/organizations/organization.md +0 -9
  15. data/docs/resources/share.md +2 -9
  16. data/docs/resources/webhooks/invitee_payload.md +1 -1
  17. data/docs/resources/webhooks/payload.md +1 -1
  18. data/docs/resources/webhooks/subscription.md +1 -1
  19. data/lib/calendlyr/client.rb +20 -45
  20. data/lib/calendlyr/collection.rb +18 -3
  21. data/lib/calendlyr/error.rb +17 -26
  22. data/lib/calendlyr/object.rb +77 -14
  23. data/lib/calendlyr/objects/event_type.rb +0 -4
  24. data/lib/calendlyr/objects/event_types/availability_schedule.rb +8 -0
  25. data/lib/calendlyr/objects/events/invitee.rb +1 -1
  26. data/lib/calendlyr/objects/location.rb +4 -0
  27. data/lib/calendlyr/objects/organization.rb +0 -4
  28. data/lib/calendlyr/objects/share.rb +0 -5
  29. data/lib/calendlyr/resource.rb +34 -7
  30. data/lib/calendlyr/resources/event_types.rb +37 -0
  31. data/lib/calendlyr/resources/{event.rb → events.rb} +6 -1
  32. data/lib/calendlyr/resources/{group.rb → groups.rb} +1 -1
  33. data/lib/calendlyr/resources/locations.rb +8 -0
  34. data/lib/calendlyr/resources/{organization.rb → organizations.rb} +1 -1
  35. data/lib/calendlyr/resources/{routing_form.rb → routing_forms.rb} +1 -1
  36. data/lib/calendlyr/resources/{share.rb → shares.rb} +1 -1
  37. data/lib/calendlyr/resources/{user.rb → users.rb} +1 -1
  38. data/lib/calendlyr/resources/{webhook.rb → webhooks.rb} +1 -5
  39. data/lib/calendlyr/version.rb +1 -1
  40. data/lib/calendlyr.rb +15 -15
  41. data/test/calendlyr/client_test.rb +25 -0
  42. data/test/calendlyr/collection_test.rb +64 -0
  43. data/test/calendlyr/object_test.rb +32 -1
  44. data/test/calendlyr/objects/event_type_test.rb +0 -15
  45. data/test/calendlyr/objects/event_types/availability_schedule_test.rb +20 -0
  46. data/test/calendlyr/objects/events/cancellation_test.rb +1 -1
  47. data/test/calendlyr/objects/events/guest_test.rb +1 -1
  48. data/test/calendlyr/objects/events/invitee_no_show_test.rb +1 -1
  49. data/test/calendlyr/objects/events/invitee_test.rb +10 -3
  50. data/test/calendlyr/objects/location_test.rb +22 -0
  51. data/test/calendlyr/objects/organization_test.rb +0 -8
  52. data/test/calendlyr/objects/organizations/invitation_test.rb +1 -1
  53. data/test/calendlyr/objects/share_test.rb +3 -9
  54. data/test/calendlyr/resource_test.rb +178 -2
  55. data/test/calendlyr/resources/data_compliance_test.rb +1 -4
  56. data/test/calendlyr/resources/event_types_test.rb +48 -0
  57. data/test/calendlyr/resources/events_test.rb +19 -0
  58. data/test/calendlyr/resources/locations_test.rb +18 -0
  59. data/test/calendlyr/resources/webhooks_test.rb +0 -8
  60. data/test/fixtures/event_invitees/retrieve.json +11 -1
  61. data/test/fixtures/event_type_availability_schedules/list.json +17 -0
  62. data/test/fixtures/event_type_availability_schedules/update.json +3 -0
  63. data/test/fixtures/event_types/create.json +30 -0
  64. data/test/fixtures/event_types/update.json +30 -0
  65. data/test/fixtures/events/create_invitee.json +37 -0
  66. data/test/fixtures/events/retrieve.json +12 -2
  67. data/test/fixtures/locations/list.json +16 -0
  68. data/test/fixtures/objects/event.json +10 -2
  69. data/test/fixtures/objects/event_types/availability_schedule.json +6 -0
  70. data/test/fixtures/objects/location.json +5 -0
  71. data/test/test_helper.rb +9 -7
  72. metadata +47 -65
  73. data/docs/resources/event_types/available_time.md +0 -21
  74. data/docs/resources/event_types/membership.md +0 -29
  75. data/docs/resources/scheduling_link.md +0 -26
  76. data/lib/calendlyr/objects/event_types/available_time.rb +0 -4
  77. data/lib/calendlyr/objects/event_types/membership.rb +0 -11
  78. data/lib/calendlyr/objects/scheduling_link.rb +0 -9
  79. data/lib/calendlyr/resources/event_type.rb +0 -28
  80. data/lib/calendlyr/resources/outgoing_communication.rb +0 -8
  81. data/lib/calendlyr/resources/scheduling_link.rb +0 -8
  82. data/test/calendlyr/objects/event_types/available_time_test.rb +0 -20
  83. data/test/calendlyr/objects/event_types/membership_test.rb +0 -32
  84. data/test/calendlyr/objects/scheduling_link_test.rb +0 -17
  85. data/test/calendlyr/resources/event_types/membership_test.rb +0 -22
  86. data/test/calendlyr/resources/outgoing_communications_test.rb +0 -16
  87. data/test/calendlyr/resources/scheduling_links_test.rb +0 -15
  88. data/test/fixtures/event_type_available_times/list.json +0 -22
  89. data/test/fixtures/objects/event_types/available_time.json +0 -6
  90. data/test/fixtures/objects/event_types/membership.json +0 -65
  91. data/test/fixtures/objects/scheduling_links/event_type.json +0 -5
  92. data/test/fixtures/outgoing_communications/list.json +0 -26
  93. data/test/fixtures/scheduling_links/create.json +0 -7
  94. data/test/fixtures/webhooks/sample.json +0 -105
@@ -23,7 +23,9 @@
23
23
  {
24
24
  "user": "https://api.calendly.com/users/GBGBDCAADAEDCRZ2",
25
25
  "user_email": "user@example.com",
26
- "user_name": "John Smith"
26
+ "user_name": "John Smith",
27
+ "buffered_start_time": "2019-08-24T14:10:00.000000Z",
28
+ "buffered_end_time": "2019-08-24T14:20:00.000000Z"
27
29
  }
28
30
  ],
29
31
  "event_guests": [
@@ -32,5 +34,11 @@
32
34
  "created_at": "2019-08-24T14:15:22.123456Z",
33
35
  "updated_at": "2019-08-24T14:15:22.123456Z"
34
36
  }
35
- ]
37
+ ],
38
+ "cancellation": {
39
+ "canceled_by": "host",
40
+ "reason": "Rescheduled",
41
+ "canceler_type": "host",
42
+ "created_at": "2019-08-24T14:15:22.123456Z"
43
+ }
36
44
  }
@@ -0,0 +1,6 @@
1
+ {
2
+ "uri": "https://api.calendly.com/event_type_availability_schedules/AAAAAAAAAAAAAAAA",
3
+ "start_time": "2023-10-27T09:00:00Z",
4
+ "end_time": "2023-10-27T17:00:00Z",
5
+ "event_type": "https://api.calendly.com/event_types/BBBBBBBBBBBBBBBB"
6
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "uri": "https://api.calendly.com/locations/AAAAAAAAAAAAAAAA",
3
+ "type": "zoom",
4
+ "display_name": "Zoom"
5
+ }
data/test/test_helper.rb CHANGED
@@ -1,18 +1,14 @@
1
- $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
2
2
 
3
3
  require "simplecov"
4
4
  SimpleCov.start
5
- if ENV["CI"] == "true"
6
- require "codecov"
7
- SimpleCov.formatter = SimpleCov::Formatter::Codecov
8
- end
9
5
  require "calendlyr"
10
6
  require "minitest/autorun"
11
7
  require "webmock/minitest"
12
8
 
13
9
  class Minitest::Test
14
10
  def initialize(name)
15
- stub(path: "users/me", response: {body: fixture_file("users/retrieve"), status: 200})
11
+ stub_user_me_request
16
12
  super
17
13
  end
18
14
 
@@ -26,8 +22,14 @@ class Minitest::Test
26
22
 
27
23
  def stub(path:, method: :get, body: {}, response: {})
28
24
  stub_req = stub_request(method, "#{Calendlyr::Client::BASE_URL}/#{path}")
29
- stub_req.with(body: body) if [:post, :put, :patch].include?(method)
25
+ stub_req.with(body: body) if %i[post put patch].include?(method)
30
26
  stub_req.to_return(**response)
31
27
  stub_req
32
28
  end
29
+
30
+ private
31
+
32
+ def stub_user_me_request
33
+ stub(path: "users/me", response: {body: fixture_file("users/retrieve"), status: 200})
34
+ end
33
35
  end
metadata CHANGED
@@ -1,99 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: calendlyr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - araluce
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-17 00:00:00.000000000 Z
11
+ date: 2026-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: minitest
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '12.0'
19
+ version: '5.25'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '12.0'
26
+ version: '5.25'
27
27
  - !ruby/object:Gem::Dependency
28
- name: minitest
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.0'
33
+ version: '13.2'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5.0'
40
+ version: '13.2'
41
41
  - !ruby/object:Gem::Dependency
42
- name: standard
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: webmock
42
+ name: simplecov
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: 3.14.0
47
+ version: '0.21'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: 3.14.0
54
+ version: '0.21'
69
55
  - !ruby/object:Gem::Dependency
70
- name: codecov
56
+ name: standard
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
61
+ version: '1.37'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: '1.37'
83
69
  - !ruby/object:Gem::Dependency
84
- name: simplecov
70
+ name: webmock
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ">="
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0'
75
+ version: '3.23'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ">="
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0'
82
+ version: '3.23'
97
83
  description: 'Ruby bindings for Calendly API. Calendly APIs can be found here: https://calendly.stoplight.io/docs/api-docs/'
98
84
  email:
99
85
  - araluce11@gmail.com
@@ -120,9 +106,8 @@ files:
120
106
  - docs/resources/availabilities/user_availability_schedule.md
121
107
  - docs/resources/availabilities/user_busy_time.md
122
108
  - docs/resources/data_compliance.md
123
- - docs/resources/event_types/available_time.md
109
+ - docs/resources/event_types/availability_schedule.md
124
110
  - docs/resources/event_types/event_type.md
125
- - docs/resources/event_types/membership.md
126
111
  - docs/resources/event_types/profile.md
127
112
  - docs/resources/events/cancellation.md
128
113
  - docs/resources/events/event.md
@@ -131,13 +116,13 @@ files:
131
116
  - docs/resources/events/invitee_no_show.md
132
117
  - docs/resources/groups/group.md
133
118
  - docs/resources/groups/relationship.md
119
+ - docs/resources/locations/location.md
134
120
  - docs/resources/organizations/invitation.md
135
121
  - docs/resources/organizations/membership.md
136
122
  - docs/resources/organizations/organization.md
137
123
  - docs/resources/pagination.md
138
124
  - docs/resources/routing_forms/routing_form.md
139
125
  - docs/resources/routing_forms/submission.md
140
- - docs/resources/scheduling_link.md
141
126
  - docs/resources/share.md
142
127
  - docs/resources/user.md
143
128
  - docs/resources/webhooks/invitee_payload.md
@@ -154,8 +139,7 @@ files:
154
139
  - lib/calendlyr/objects/availabilities/user_schedule.rb
155
140
  - lib/calendlyr/objects/event.rb
156
141
  - lib/calendlyr/objects/event_type.rb
157
- - lib/calendlyr/objects/event_types/available_time.rb
158
- - lib/calendlyr/objects/event_types/membership.rb
142
+ - lib/calendlyr/objects/event_types/availability_schedule.rb
159
143
  - lib/calendlyr/objects/event_types/profile.rb
160
144
  - lib/calendlyr/objects/events/cancellation.rb
161
145
  - lib/calendlyr/objects/events/guest.rb
@@ -163,12 +147,12 @@ files:
163
147
  - lib/calendlyr/objects/events/invitee_no_show.rb
164
148
  - lib/calendlyr/objects/group.rb
165
149
  - lib/calendlyr/objects/groups/relationship.rb
150
+ - lib/calendlyr/objects/location.rb
166
151
  - lib/calendlyr/objects/organization.rb
167
152
  - lib/calendlyr/objects/organizations/invitation.rb
168
153
  - lib/calendlyr/objects/organizations/membership.rb
169
154
  - lib/calendlyr/objects/routing_form.rb
170
155
  - lib/calendlyr/objects/routing_forms/submission.rb
171
- - lib/calendlyr/objects/scheduling_link.rb
172
156
  - lib/calendlyr/objects/share.rb
173
157
  - lib/calendlyr/objects/user.rb
174
158
  - lib/calendlyr/objects/webhooks/invitee_payload.rb
@@ -177,18 +161,18 @@ files:
177
161
  - lib/calendlyr/resource.rb
178
162
  - lib/calendlyr/resources/availability.rb
179
163
  - lib/calendlyr/resources/data_compliance.rb
180
- - lib/calendlyr/resources/event.rb
181
- - lib/calendlyr/resources/event_type.rb
182
- - lib/calendlyr/resources/group.rb
183
- - lib/calendlyr/resources/organization.rb
184
- - lib/calendlyr/resources/outgoing_communication.rb
185
- - lib/calendlyr/resources/routing_form.rb
186
- - lib/calendlyr/resources/scheduling_link.rb
187
- - lib/calendlyr/resources/share.rb
188
- - lib/calendlyr/resources/user.rb
189
- - lib/calendlyr/resources/webhook.rb
164
+ - lib/calendlyr/resources/event_types.rb
165
+ - lib/calendlyr/resources/events.rb
166
+ - lib/calendlyr/resources/groups.rb
167
+ - lib/calendlyr/resources/locations.rb
168
+ - lib/calendlyr/resources/organizations.rb
169
+ - lib/calendlyr/resources/routing_forms.rb
170
+ - lib/calendlyr/resources/shares.rb
171
+ - lib/calendlyr/resources/users.rb
172
+ - lib/calendlyr/resources/webhooks.rb
190
173
  - lib/calendlyr/version.rb
191
174
  - test/calendlyr/client_test.rb
175
+ - test/calendlyr/collection_test.rb
192
176
  - test/calendlyr/object_test.rb
193
177
  - test/calendlyr/objects/activity_log_test.rb
194
178
  - test/calendlyr/objects/availabilities/rule_test.rb
@@ -196,8 +180,7 @@ files:
196
180
  - test/calendlyr/objects/availabilities/user_schedule_test.rb
197
181
  - test/calendlyr/objects/event_test.rb
198
182
  - test/calendlyr/objects/event_type_test.rb
199
- - test/calendlyr/objects/event_types/available_time_test.rb
200
- - test/calendlyr/objects/event_types/membership_test.rb
183
+ - test/calendlyr/objects/event_types/availability_schedule_test.rb
201
184
  - test/calendlyr/objects/event_types/profile_test.rb
202
185
  - test/calendlyr/objects/events/cancellation_test.rb
203
186
  - test/calendlyr/objects/events/guest_test.rb
@@ -205,12 +188,12 @@ files:
205
188
  - test/calendlyr/objects/events/invitee_test.rb
206
189
  - test/calendlyr/objects/group_test.rb
207
190
  - test/calendlyr/objects/groups/relationship_test.rb
191
+ - test/calendlyr/objects/location_test.rb
208
192
  - test/calendlyr/objects/organization_test.rb
209
193
  - test/calendlyr/objects/organizations/invitation_test.rb
210
194
  - test/calendlyr/objects/organizations/membership_test.rb
211
195
  - test/calendlyr/objects/routing_form_test.rb
212
196
  - test/calendlyr/objects/routing_forms/submission_test.rb
213
- - test/calendlyr/objects/scheduling_link_test.rb
214
197
  - test/calendlyr/objects/share_test.rb
215
198
  - test/calendlyr/objects/user_test.rb
216
199
  - test/calendlyr/objects/webhooks/invite_payload_test.rb
@@ -220,14 +203,12 @@ files:
220
203
  - test/calendlyr/resources/availabilities/user_busy_times_test.rb
221
204
  - test/calendlyr/resources/availabilities/user_schedules_test.rb
222
205
  - test/calendlyr/resources/data_compliance_test.rb
223
- - test/calendlyr/resources/event_types/membership_test.rb
224
206
  - test/calendlyr/resources/event_types_test.rb
225
207
  - test/calendlyr/resources/events/invitee_test.rb
226
208
  - test/calendlyr/resources/events_test.rb
227
209
  - test/calendlyr/resources/groups_test.rb
210
+ - test/calendlyr/resources/locations_test.rb
228
211
  - test/calendlyr/resources/organizations_test.rb
229
- - test/calendlyr/resources/outgoing_communications_test.rb
230
- - test/calendlyr/resources/scheduling_links_test.rb
231
212
  - test/calendlyr/resources/users_test.rb
232
213
  - test/calendlyr/resources/webhooks_test.rb
233
214
  - test/calendlyr_test.rb
@@ -239,12 +220,16 @@ files:
239
220
  - test/fixtures/data_compliance/delete_scheduled_event_data.json
240
221
  - test/fixtures/event_invitees/list.json
241
222
  - test/fixtures/event_invitees/retrieve.json
242
- - test/fixtures/event_type_available_times/list.json
223
+ - test/fixtures/event_type_availability_schedules/list.json
224
+ - test/fixtures/event_type_availability_schedules/update.json
243
225
  - test/fixtures/event_type_hosts/list.json
226
+ - test/fixtures/event_types/create.json
244
227
  - test/fixtures/event_types/create_one_off.json
245
228
  - test/fixtures/event_types/list.json
246
229
  - test/fixtures/event_types/retrieve.json
230
+ - test/fixtures/event_types/update.json
247
231
  - test/fixtures/events/cancel_invitee.json
232
+ - test/fixtures/events/create_invitee.json
248
233
  - test/fixtures/events/create_invitee_no_show.json
249
234
  - test/fixtures/events/delete_invitee_no_show.json
250
235
  - test/fixtures/events/list.json
@@ -254,6 +239,7 @@ files:
254
239
  - test/fixtures/group_relationships/retrieve.json
255
240
  - test/fixtures/groups/list.json
256
241
  - test/fixtures/groups/retrieve.json
242
+ - test/fixtures/locations/list.json
257
243
  - test/fixtures/objects/activity_log.json
258
244
  - test/fixtures/objects/availabilities/rule.json
259
245
  - test/fixtures/objects/availabilities/user_busy_time.json
@@ -262,8 +248,7 @@ files:
262
248
  - test/fixtures/objects/event.json
263
249
  - test/fixtures/objects/event_type.json
264
250
  - test/fixtures/objects/event_type_host.json
265
- - test/fixtures/objects/event_types/available_time.json
266
- - test/fixtures/objects/event_types/membership.json
251
+ - test/fixtures/objects/event_types/availability_schedule.json
267
252
  - test/fixtures/objects/event_types/profile.json
268
253
  - test/fixtures/objects/events/cancellation.json
269
254
  - test/fixtures/objects/events/guest.json
@@ -271,12 +256,12 @@ files:
271
256
  - test/fixtures/objects/events/invitee_no_show.json
272
257
  - test/fixtures/objects/group.json
273
258
  - test/fixtures/objects/groups/relationship.json
259
+ - test/fixtures/objects/location.json
274
260
  - test/fixtures/objects/organization.json
275
261
  - test/fixtures/objects/organizations/invitation.json
276
262
  - test/fixtures/objects/organizations/membership.json
277
263
  - test/fixtures/objects/routing_form.json
278
264
  - test/fixtures/objects/routing_forms/submission.json
279
- - test/fixtures/objects/scheduling_links/event_type.json
280
265
  - test/fixtures/objects/share.json
281
266
  - test/fixtures/objects/user.json
282
267
  - test/fixtures/objects/webhooks/invite_payload.json
@@ -291,7 +276,6 @@ files:
291
276
  - test/fixtures/organizations/retrieve_invitation.json
292
277
  - test/fixtures/organizations/retrieve_membership.json
293
278
  - test/fixtures/organizations/revoke_invitation.json
294
- - test/fixtures/outgoing_communications/list.json
295
279
  - test/fixtures/resources/400.json
296
280
  - test/fixtures/resources/401.json
297
281
  - test/fixtures/resources/403.json
@@ -304,7 +288,6 @@ files:
304
288
  - test/fixtures/routing_forms/list_routing_form_submission.json
305
289
  - test/fixtures/routing_forms/retrieve.json
306
290
  - test/fixtures/routing_forms/retrieve_routing_form_submission.json
307
- - test/fixtures/scheduling_links/create.json
308
291
  - test/fixtures/shares/create.json
309
292
  - test/fixtures/user_availability_schedules/list.json
310
293
  - test/fixtures/user_availability_schedules/retrieve.json
@@ -315,7 +298,6 @@ files:
315
298
  - test/fixtures/webhooks/delete.json
316
299
  - test/fixtures/webhooks/list.json
317
300
  - test/fixtures/webhooks/retrieve.json
318
- - test/fixtures/webhooks/sample.json
319
301
  - test/test_helper.rb
320
302
  homepage: https://github.com/araluce/calendlyr
321
303
  licenses:
@@ -330,7 +312,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
330
312
  requirements:
331
313
  - - ">="
332
314
  - !ruby/object:Gem::Version
333
- version: 2.4.0
315
+ version: 3.2.0
334
316
  required_rubygems_version: !ruby/object:Gem::Requirement
335
317
  requirements:
336
318
  - - ">="
@@ -1,21 +0,0 @@
1
- # Available Time Calendlyr::EventTypes::AvailableTime
2
-
3
- An available meeting time slot for the given event type.
4
-
5
- Visit official [API Doc](https://developer.calendly.com/api-docs/2d8d322931358-event-type-available-time)
6
-
7
- ## Client requests
8
-
9
- ### List
10
- Returns a list of available times for an event type within a specified date range.
11
-
12
- Date range can be no greater than 1 week (7 days).
13
-
14
- For the examples bellow we will use only required parameters, but you can use any other parameter as well.
15
-
16
- Visit official [API Doc](https://developer.calendly.com/api-docs/6a1be82aef359-list-event-type-available-times)
17
-
18
- ```ruby
19
- client.event_types.list_available_times(event_type, event_type, start_time: start_time, end_time: end_time)
20
- #=> #<Calendlyr::Collection @data=[#<Calendlyr::EventTypes::AvailableTime>, ...], @count=nil, @next_page=nil, @next_page_token=nil, @client=#<Calendlyr::Client>>
21
- ```
@@ -1,29 +0,0 @@
1
- # Membership (Host) Calendlyr::EventTypes::Membership
2
-
3
- ## Client requests
4
-
5
- ### List
6
- Fetch list of event type hosts.
7
-
8
- Visit official [API Doc](https://developer.calendly.com/api-docs/9e27c9bd793da-list-event-type-hosts)
9
-
10
- ```ruby
11
- client.event_types.list_memberships(event_type, event_type)
12
- #=> #<Calendlyr::Collection @data=[#<Calendlyr::EventTypes::Membership>, ...], @count=nil, @next_page=nil, @next_page_token=nil, @client=#<Calendlyr::Client>>
13
- ```
14
-
15
- ## Object methods
16
-
17
- ### Associated Event Type
18
-
19
- ```ruby
20
- membership.associated_event_type
21
- #=> #<Calendlyr::EventType>
22
- ```
23
-
24
- ### Associated Member
25
-
26
- ```ruby
27
- membership.associated_member
28
- #=> [#<Calendlyr::User>, ...]
29
- ```
@@ -1,26 +0,0 @@
1
- # Scheduling Link Calendlyr::SchedulingLink
2
-
3
- Scheduling Link Object.
4
-
5
-
6
- ## Client requests
7
-
8
- ### Create
9
-
10
- Creates a single-use scheduling link.
11
-
12
- Visit official [API Doc](https://developer.calendly.com/api-docs/4b8195084e287-create-single-use-scheduling-link)
13
-
14
- ```ruby
15
- client.scheduling_links.create(owner: event_type_uri, max_event_count: 1)
16
- #=> #<Calendlyr::SchedulingLink>
17
- ```
18
-
19
- ## Object methods
20
-
21
- ### Event Type
22
-
23
- ```ruby
24
- scheduling_link.event_type
25
- #=> #<Calendlyr::EventType>
26
- ```
@@ -1,4 +0,0 @@
1
- module Calendlyr
2
- class EventTypes::AvailableTime < Object
3
- end
4
- end
@@ -1,11 +0,0 @@
1
- module Calendlyr
2
- class EventTypes::Membership < Object
3
- def associated_event_type
4
- client.event_types.retrieve(uuid: get_slug(event_type.uri))
5
- end
6
-
7
- def associated_member
8
- client.users.retrieve(uuid: get_slug(member.uri))
9
- end
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- module Calendlyr
2
- class SchedulingLink < Object
3
- def event_type
4
- return unless owner_type == "EventType"
5
-
6
- client.event_types.retrieve(uuid: get_slug(owner))
7
- end
8
- end
9
- end
@@ -1,28 +0,0 @@
1
- module Calendlyr
2
- class EventTypeResource < Resource
3
- def list(**params)
4
- response = get_request("event_types", params: params)
5
- Collection.from_response(response, type: EventType, client: client)
6
- end
7
-
8
- def retrieve(uuid:)
9
- EventType.new get_request("event_types/#{uuid}").dig("resource").merge(client: client)
10
- end
11
-
12
- def create_one_off(name:, host:, duration:, date_setting:, location:, **params)
13
- body = {name: name, host: host, duration: duration, date_setting: date_setting, location: location}.merge(params)
14
- EventType.new post_request("one_off_event_types", body: body).dig("resource").merge(client: client)
15
- end
16
-
17
- def list_memberships(event_type:, **params)
18
- response = get_request("event_type_memberships", params: {event_type: event_type}.merge(params))
19
- Collection.from_response(response, type: EventTypes::Membership, client: client)
20
- end
21
-
22
- # Available Times
23
- def list_available_times(event_type:, start_time:, end_time:, **params)
24
- response = get_request("event_type_available_times", params: {event_type: event_type, start_time: start_time, end_time: end_time}.merge(params))
25
- Collection.from_response(response, type: EventTypes::AvailableTime, client: client)
26
- end
27
- end
28
- end
@@ -1,8 +0,0 @@
1
- module Calendlyr
2
- class OutgoingCommunicationResource < Resource
3
- def list(**params)
4
- response = get_request("outgoing_communications", params: params)
5
- Collection.from_response(response, type: Object, client: client)
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Calendlyr
2
- class SchedulingLinkResource < Resource
3
- def create(owner:, max_event_count:, owner_type: "EventType")
4
- body = {owner: owner, max_event_count: max_event_count, owner_type: owner_type}
5
- SchedulingLink.new post_request("scheduling_links", body: body).dig("resource").merge(client: client)
6
- end
7
- end
8
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module EventTypes
6
- class AvailableTimeObjectTest < Minitest::Test
7
- def setup
8
- json = JSON.parse(fixture_file("objects/event_types/available_time")).merge(client: client)
9
- @available_time = Calendlyr::EventTypes::AvailableTime.new(json)
10
- end
11
-
12
- def test_status
13
- assert_equal "available", @available_time.status
14
- end
15
-
16
- def test_invitees_remaining
17
- assert_equal 2, @available_time.invitees_remaining
18
- end
19
- end
20
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module EventTypes
6
- class MembershipObjectTest < Minitest::Test
7
- def setup
8
- json = JSON.parse(fixture_file("objects/event_types/membership")).merge(client: client)
9
- @membership = Calendlyr::EventTypes::Membership.new(json)
10
-
11
- event_type_uuid = "AAAAAAAAAAAAAAAA"
12
- response = {body: fixture_file("event_types/retrieve"), status: 200}
13
- stub(path: "event_types/#{event_type_uuid}", response: response)
14
-
15
- user_uuid = "AAAAAAAAAAAAAAAA"
16
- response = {body: fixture_file("users/retrieve"), status: 200}
17
- stub(path: "users/#{user_uuid}", response: response)
18
- end
19
-
20
- def test_associated_event_type
21
- event_type = @membership.associated_event_type
22
-
23
- assert_equal "15 Minute Meeting", event_type.name
24
- end
25
-
26
- def test_associated_member
27
- member = @membership.associated_member
28
-
29
- assert_equal "John Doe", member.name
30
- end
31
- end
32
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class ScheduleLinkObjectTest < Minitest::Test
6
- def test_event_type
7
- json = JSON.parse(fixture_file("objects/scheduling_links/event_type")).merge(client: client)
8
- @scheduling_link = Calendlyr::SchedulingLink.new(json)
9
-
10
- response = {body: fixture_file("event_types/retrieve"), status: 200}
11
- stub(path: "event_types/GBGBDCAADAEDCRZ2", response: response)
12
-
13
- event_type = @scheduling_link.event_type
14
-
15
- assert_equal Calendlyr::EventType, event_type.class
16
- end
17
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- module EventTypes
6
- class MembershipTest < Minitest::Test
7
- def setup
8
- @event_type_uri = "https://api.calendly.com/event_types/abc123"
9
- response = {body: fixture_file("event_type_hosts/list"), status: 200}
10
- stub(path: "event_type_memberships?event_type=#{@event_type_uri}", response: response)
11
- end
12
-
13
- def test_list
14
- event_type_hosts = client.event_types.list_memberships(event_type: @event_type_uri)
15
-
16
- assert_equal Calendlyr::Collection, event_type_hosts.class
17
- assert_equal Calendlyr::EventTypes::Membership, event_type_hosts.data.first.class
18
- assert_equal 1, event_type_hosts.data.count
19
- assert_equal "sNjq4TvMDfUHEl7zHRR0k0E1PCEJWvdi", event_type_hosts.next_page_token
20
- end
21
- end
22
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class OutgoingCommunicationsResourceTest < Minitest::Test
6
- def test_list
7
- response = {body: fixture_file("outgoing_communications/list"), status: 200}
8
- stub(path: "outgoing_communications", response: response)
9
- outgoing_communications = client.outgoing_communications.list
10
-
11
- assert_equal Calendlyr::Collection, outgoing_communications.class
12
- assert_equal Calendlyr::Object, outgoing_communications.data.first.class
13
- assert_equal 1, outgoing_communications.data.count
14
- assert_equal "sms", outgoing_communications.data.first.type
15
- end
16
- end