Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
  src
  index.js
  package.json
  Readme.md
Size: Mime:
  Readme.md

lib-zoom-connector

API for using and managing Zoom accounts with Doodle.

:warning: This module contains ES5 syntax1 and is monolith-friendly (I am looking at you, IE11). It does not transpile anything or have a build step, so yarn link should just work for once in your life. :tm: :sparkles:

1 ES6+ syntax is still used for the unit tests, because the unit test code is not bundled in the published version.

Install

$ yarn add @doodle/zoom-connector

Import

import Zoom from '@doodle/zoom-connector';

Example

import Zoom from '@doodle/zoom-connector';

const meetingContext = {
    title: 'Important Meeting! 🦄 👑',
    description: 'We are meeting with the king of unicorns. Bring candy!',
    startTime: '2020-02-09T20:00:00',
    duration: 60,
    timezone: 'Europe/Zurich'
};

var options = {
    url: 'https://staging.doodle-test.com',
};

try {
    const meeting = await Zoom.createMeeting('accountId', 'token', meetingContext, options);
} catch (error) {
    // Do something with your errors. 
}

API

Zoom.getAccountHealthStatus(accountId, token, options);

Returns a Promise.

This will tell you if the connected accounts are in a "healthy state", meaning the connected accounts are active, valid, and able to create meetings, etc. Otherwise, the user should be prompted to re-connect their Zoom account to Doodle.

accountId Required The user's Zoom Account Id (not the Doodle User Id). Type: String

token Required The Doodle user's Access Token. Type: String

options Required Use this to supply the baseUrl for your enviornment. Type: Object

Zoom.setGlobalZoom(zoomIntegrationEnabled, token, options);

Returns a Promise.

This will globally enable or disable Zoom for the User's account. The user can have a Zoom account connected to Doodle, but still have the integration disabled.

zoomIntegrationEnabled Required The value to toggle the setting to, true or false. Type: Boolean

token Required The Doodle user's Access Token. Type: String

options Required Use this to supply the baseUrl for your enviornment. Type: Object

Zoom.getOAuthUrl(baseUrl, secret);

Returns a String.

Get the OAuth Url string that will guide the user through the OAuth flow to connect their Zoom account to Doodle.

baseUrl Required The value to toggle the setting to, true or false. Type: String

secret If supplied, will append a ?secret= parameter to the end of the url. This is useful if you have any security or Anti-CSRF mechanisms in place. Type: String

Zoom.getConnectedAccounts(token, options);

Returns a Promise.

Get all of the Zoom accounts that are connected to the user's Doodle account.

token Required The Doodle user's Access Token. Type: String

options Required Use this to supply the baseUrl for your enviornment. Type: Object

deleteAccount(accountId, token, options);

Returns a Promise.

Will delete ("disconnect") the Zoom account from the Doodle User's account.

accountId Required The user's Zoom Account Id (not the Doodle User Id). Type: String

token Required The Doodle user's Access Token. Type: String

options Required Use this to supply the baseUrl for your enviornment. Type: Object

createMeeting(accountId, token, meetingContext, options);

Returns a Promise.

Will create a Zoom meeting on the Doodle user's behalf.

accountId Required The user's Zoom Account Id (not the Doodle User Id). Type: String

token Required The Doodle user's Access Token. Type: String

meetingContext Required Use this to supply the Doodle meeting details to be used when creating the accompanying Zoom meeting. Type: Object

Note: The meeting context must supply the following (required) values:

const meetingContext = { 
    title: 'String',
    description: 'String',
    startTime: 'DateString',
    duration: 'Number (minutes)', 
    timezone: 'String',
};

options Required Use this to supply the baseUrl for your enviornment. Type: Object

Publish

This module uses TagFlow:tm: to publish. This means you just need to create tags with a special syntax: pub.<VERSION>

Example via the terminal (requires the repo to be cloned locally):

$ git tag pub.X.X.X
$ git push origin pub.X.X.X

where X.X.X represents the version number you want to release.

:bulb: You can still publish this TagFlow-enabled module without needing the repo cloned locally, simply use GitGub releases to create the tag using the same syntax: pub.X.X.X


:rainbow: :hamburger: