Class: Calendly::Client
- Inherits:
-
Object
- Object
- Calendly::Client
- Includes:
- Loggable
- Defined in:
- lib/calendly/client.rb
Overview
Calendly apis client.
Constant Summary collapse
- API_HOST =
'https://api.calendly.com'- AUTH_API_HOST =
'https://auth.calendly.com'
Instance Method Summary collapse
-
#access_token ⇒ OAuth2::AccessToken
Get access token object.
-
#create_invitation(uuid, email) ⇒ Calendly::OrganizationInvitation
Invite a person to an Organization.
-
#current_user ⇒ Calendly::User
(also: #me)
Get basic information about current user.
-
#delete_invitation(org_uuid, inv_uuid) ⇒ true
Revoke Organization Invitation.
-
#delete_membership(uuid) ⇒ true
Remove a User from an Organization.
-
#event_invitee(ev_uuid, inv_uuid) ⇒ Calendly::Invitee
Get Invitee of an Event Returns a single Invitee by their URI.
-
#event_invitees(uuid, opts = {}) ⇒ Array<Array<Calendly::Invitee>, Hash>
Get List of Event Invitees.
-
#event_types(user_uri, opts = {}) ⇒ Array<Array<Calendly::EventType>, Hash>
Returns all Event Types associated with a specified User.
-
#initialize(token = nil) ⇒ Client
constructor
A new instance of Client.
-
#invitation(org_uuid, inv_uuid) ⇒ Calendly::OrganizationInvitation
Returns an Organization Invitation.
-
#invitations(uuid, opts = {}) ⇒ <Array<Array<Calendly::OrganizationInvitation>, Hash>] - [Array<Calendly::OrganizationInvitation>] organizations - [Hash] next_params the parameters to get next data. if thre is no next it returns nil.
Get Organization Invitations.
-
#membership(uuid) ⇒ Calendly::OrganizationMembership
Returns information about a user’s organization membership.
-
#memberships(org_uri, opts = {}) ⇒ Array<Array<Calendly::OrganizationMembership>, Hash>
Get List memberships of all users belonging to an organization.
-
#memberships_by_user(user_uri, opts = {}) ⇒ Array<Array<Calendly::OrganizationMembership>, Hash>
Get List memberships of all users belonging to an organization by user.
-
#refresh! ⇒ Object
Refresh access token.
-
#scheduled_event(uuid) ⇒ Calendly::Event
Returns a single Event by its URI.
-
#scheduled_events(user_uri, opts = {}) ⇒ Array<Array<Calendly::Event>, Hash>
Get List of User Events.
-
#user(uuid = 'me') ⇒ Calendly::User
Get basic information about a user.
Methods included from Loggable
#debug_log, #error_log, #info_log, #warn_log
Constructor Details
#initialize(token = nil) ⇒ Client
Returns a new instance of Client.
14 15 16 17 18 19 20 |
# File 'lib/calendly/client.rb', line 14 def initialize(token = nil) @config = Calendly.configuration @token = token || Calendly.configuration.token check_not_empty @token, 'token' check_token end |
Instance Method Details
#access_token ⇒ OAuth2::AccessToken
Get access token object.
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/calendly/client.rb', line 27 def access_token return @access_token if defined? @access_token client = OAuth2::Client.new(@config.client_id, @config.client_secret, ) @access_token = OAuth2::AccessToken.new( client, @token, refresh_token: @config.refresh_token, expires_at: @config.token_expires_at ) end |
#create_invitation(uuid, email) ⇒ Calendly::OrganizationInvitation
Invite a person to an Organization.
337 338 339 340 341 342 343 344 345 346 |
# File 'lib/calendly/client.rb', line 337 def create_invitation(uuid, email) check_not_empty uuid, 'uuid' check_not_empty email, 'email' body = request( :post, "organizations/#{uuid}/invitations", body: {email: email} ) OrganizationInvitation.new body[:resource], self end |
#current_user ⇒ Calendly::User Also known as: me
Get basic information about current user.
61 62 63 |
# File 'lib/calendly/client.rb', line 61 def current_user user end |
#delete_invitation(org_uuid, inv_uuid) ⇒ true
Revoke Organization Invitation.
358 359 360 361 362 363 |
# File 'lib/calendly/client.rb', line 358 def delete_invitation(org_uuid, inv_uuid) check_not_empty org_uuid, 'org_uuid' check_not_empty inv_uuid, 'inv_uuid' request :delete, "organizations/#{org_uuid}/invitations/#{inv_uuid}" true end |
#delete_membership(uuid) ⇒ true
Remove a User from an Organization.
275 276 277 278 279 |
# File 'lib/calendly/client.rb', line 275 def delete_membership(uuid) check_not_empty uuid, 'uuid' request :delete, "organization_memberships/#{uuid}" true end |
#event_invitee(ev_uuid, inv_uuid) ⇒ Calendly::Invitee
Get Invitee of an Event Returns a single Invitee by their URI.
164 165 166 167 168 169 |
# File 'lib/calendly/client.rb', line 164 def event_invitee(ev_uuid, inv_uuid) check_not_empty ev_uuid, 'ev_uuid' check_not_empty inv_uuid, 'inv_uuid' body = request :get, "scheduled_events/#{ev_uuid}/invitees/#{inv_uuid}" Invitee.new body[:resource], self end |
#event_invitees(uuid, opts = {}) ⇒ Array<Array<Calendly::Invitee>, Hash>
Get List of Event Invitees.
187 188 189 190 191 192 193 194 195 196 197 |
# File 'lib/calendly/client.rb', line 187 def event_invitees(uuid, opts = {}) check_not_empty uuid, 'uuid' opts_keys = %i[count email page_token sort status] params = opts, opts_keys body = request :get, "scheduled_events/#{uuid}/invitees", params: params items = body[:collection] || [] evs = items.map { |item| Invitee.new item, self } [evs, next_page_params(body)] end |
#event_types(user_uri, opts = {}) ⇒ Array<Array<Calendly::EventType>, Hash>
Returns all Event Types associated with a specified User.
95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/calendly/client.rb', line 95 def event_types(user_uri, opts = {}) check_not_empty user_uri, 'user_uri' opts_keys = %i[count page_token sort] params = {user: user_uri} params = opts, opts_keys, params body = request :get, 'event_types', params: params items = body[:collection] || [] ev_types = items.map { |item| EventType.new item, self } [ev_types, next_page_params(body)] end |
#invitation(org_uuid, inv_uuid) ⇒ Calendly::OrganizationInvitation
Returns an Organization Invitation.
291 292 293 294 295 296 297 |
# File 'lib/calendly/client.rb', line 291 def invitation(org_uuid, inv_uuid) check_not_empty org_uuid, 'org_uuid' check_not_empty inv_uuid, 'inv_uuid' body = request :get, "organizations/#{org_uuid}/invitations/#{inv_uuid}" OrganizationInvitation.new body[:resource], self end |
#invitations(uuid, opts = {}) ⇒ <Array<Array<Calendly::OrganizationInvitation>, Hash>] - [Array<Calendly::OrganizationInvitation>] organizations - [Hash] next_params the parameters to get next data. if thre is no next it returns nil.
Get Organization Invitations.
315 316 317 318 319 320 321 322 323 324 325 |
# File 'lib/calendly/client.rb', line 315 def invitations(uuid, opts = {}) check_not_empty uuid, 'uuid' opts_keys = %i[count email page_token sort status] params = opts, opts_keys body = request :get, "organizations/#{uuid}/invitations", params: params items = body[:collection] || [] evs = items.map { |item| OrganizationInvitation.new item, self } [evs, next_page_params(body)] end |
#membership(uuid) ⇒ Calendly::OrganizationMembership
Returns information about a user’s organization membership
207 208 209 210 211 |
# File 'lib/calendly/client.rb', line 207 def membership(uuid) check_not_empty uuid, 'uuid' body = request :get, "organization_memberships/#{uuid}" OrganizationMembership.new body[:resource], self end |
#memberships(org_uri, opts = {}) ⇒ Array<Array<Calendly::OrganizationMembership>, Hash>
Get List memberships of all users belonging to an organization.
227 228 229 230 231 232 233 234 235 236 237 238 |
# File 'lib/calendly/client.rb', line 227 def memberships(org_uri, opts = {}) check_not_empty org_uri, 'org_uri' opts_keys = %i[count email page_token] params = {organization: org_uri} params = opts, opts_keys, params body = request :get, 'organization_memberships', params: params items = body[:collection] || [] memberships = items.map { |item| OrganizationMembership.new item, self } [memberships, next_page_params(body)] end |
#memberships_by_user(user_uri, opts = {}) ⇒ Array<Array<Calendly::OrganizationMembership>, Hash>
Get List memberships of all users belonging to an organization by user.
254 255 256 257 258 259 260 261 262 263 264 265 |
# File 'lib/calendly/client.rb', line 254 def memberships_by_user(user_uri, opts = {}) check_not_empty user_uri, 'user_uri' opts_keys = %i[count email page_token] params = {user: user_uri} params = opts, opts_keys, params body = request :get, 'organization_memberships', params: params items = body[:collection] || [] memberships = items.map { |item| OrganizationMembership.new item, self } [memberships, next_page_params(body)] end |
#refresh! ⇒ Object
Refresh access token.
46 47 48 49 50 51 52 53 |
# File 'lib/calendly/client.rb', line 46 def refresh! check_not_empty @config.client_id, 'client_id' check_not_empty @config.client_secret, 'client_secret' @access_token = access_token.refresh! rescue OAuth2::Error => e res = e.response.response raise ApiError.new res, e end |
#scheduled_event(uuid) ⇒ Calendly::Event
Returns a single Event by its URI.
116 117 118 119 120 |
# File 'lib/calendly/client.rb', line 116 def scheduled_event(uuid) check_not_empty uuid, 'uuid' body = request :get, "scheduled_events/#{uuid}" Event.new body[:resource], self end |
#scheduled_events(user_uri, opts = {}) ⇒ Array<Array<Calendly::Event>, Hash>
Get List of User Events.
140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/calendly/client.rb', line 140 def scheduled_events(user_uri, opts = {}) check_not_empty user_uri, 'user_uri' opts_keys = %i[count invitee_email max_start_time min_start_time page_token sort status] params = {user: user_uri} params = opts, opts_keys, params body = request :get, 'scheduled_events', params: params items = body[:collection] || [] evs = items.map { |item| Event.new item, self } [evs, next_page_params(body)] end |
#user(uuid = 'me') ⇒ Calendly::User
Get basic information about a user
75 76 77 78 79 |
# File 'lib/calendly/client.rb', line 75 def user(uuid = 'me') check_not_empty uuid, 'uuid' body = request :get, "users/#{uuid}" User.new body[:resource], self end |