UNPKG

@orbit-love/activities

Version:

Orbit API client for Node.js. API support for activity and note operations.

282 lines (205 loc) 7.87 kB
# Orbit Activities Helper Library for Node.js ![Build Status](https://github.com/orbit-love/js-orbit-activities/workflows/CI/badge.svg) [![npm version](https://badge.fury.io/js/%40orbit-love%2Factivities.svg)](https://badge.fury.io/js/%40orbit-love%2Factivities) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](.github/CODE_OF_CONDUCT.md) > Orbit API helper library for Node.js. <br>This client can create, read, update and delete activities in your Orbit workspace. <img src=".github/logo.png" alt="Orbit" style="max-width: 300px; margin: 2em 0;"> ## Installation ``` npm install @orbit-love/activities ``` ## Constructor ```js const OrbitActivities = require('@orbit-love/activities') const orbitActivities = new OrbitActivities(orbitWorkspaceId, orbitApiKey) ``` * `orbitWorkspaceId` - The part of your Orbit workspace URL that immediately follows the app.orbit.love. For example, if the URL was https://app.orbit.love/my-workspace, then your Orbit workspace ID is my-workspace. * `orbitApiKey` - This can be found in you Orbit Account Settings. ### Initializing with environment variables If you have the environment variables `ORBIT_WORKSPACE_ID` and `ORBIT_API_KEY` set, you can initialize the client like so: ```js const OrbitActivities = require('@orbit-love/activities') const orbitActivities = new OrbitActivities() ``` If you have environment variables set and also pass in values, the passed in values will be used. ## Rate Limits & Page Sizes - [Information about Orbit API Rate Limiting](https://docs.orbit.love/reference#rate-limiting) - For list methods, you can ask request a number of results per request between 1 and 100. ## Activity Methods <details> <summary><code>listWorkspaceActivities(options)</code></summary> ```js const options = { page: 1, items: 50, company: 'ACME Corp' } orbitActivities.listWorkspaceActivities(options).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` `options` is not a required parameter, but can be any query parameter shown in our API reference. [__List activities for a workspace__ API reference.](https://docs.orbit.love/reference#get_-workspace-id-activities) </details> <details> <summary><code>listMemberActivities(memberId, options)</code></summary> ```js const memberId = 'janesmith04' const options = { page: 1, items: 50 } orbitActivities.listMemberActivities(memberId, options).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` `options` is not a required parameter, but can be any query parameter shown in our API reference. [__List activities for a member__ API reference.](https://docs.orbit.love/reference#get_-workspace-id-members-member-id-activities) </details> <details> <summary><code>getLatestActivityTimestamp(activityType)</code></summary> ```js const activityType = 'issued:opened' orbitActivities.getLatestActivityTimestamp(activityType).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` Will return the timestamp of the latest activity with the provided type, or null if there are none. </details> <details> <summary><code>getActivity(activityId)</code></summary> ```js const activityId = '1234536' orbitActivities.getActivity(activityId).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` [__Get an activity in the workspace__ API reference.](https://docs.orbit.love/reference#get_-workspace-id-activities-id) </details> <details> <summary><code>createActivity(memberId, data)</code> or <code>createActivity(data)</code></summary> If you know the `memberId` for the member you want to add the activity to: ```js const memberId = 'janesmith04' const data = { activity_type: 'starfleet:signup', title: "New Planet Signed Up for Starfleet", description: "Klingon has joined Starfleet via Twitter", member: { tshirt: 'XL', twitter: 'qunnoq' } } orbitActivities.createActivity(memberId, data).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` `data` should match the body params as shown in the [__Create a post activity for a member__ API reference.](https://docs.orbit.love/reference#post_-workspace-id-members-member-id-activities) If you know one or more identities of the member (github, email, twitter, etc.) but not their Orbit ID: ```js const data = { activity_type: 'starfleet:signup', title: "New Planet Signed Up for Starfleet", description: "Klingon has joined Starfleet via Twitter", member: { tshirt: 'XL', twitter: 'qunnoq' } } orbitActivities.createActivity(data).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` `data` should match the body params as shown in the [__Create an activity for a new or existing member__ API reference.](https://docs.orbit.love/reference#post_-workspace-id-activities) </details> <details> <summary><code>updateActivity(memberId, activityId, data)</code></summary> ```js const memberId = 'janesmith04' const activityId = '1234356' const data: { description: 'New description' } orbitActivities.updateActivity(memberId, activityId, data).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` `data` should match the body params as shown in the [__Update a custom activity for a member__ API reference.](https://docs.orbit.love/reference#put_-workspace-id-members-member-id-activities-id) </details> <details> <summary><code>deleteActivity(memberId, activityId)</code></summary> ```js const memberId = 'janesmith04' const activityId = '1234356' orbitActivities.deleteActivity(memberId, activityId).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` [__Delete a post activity__ API reference.](https://docs.orbit.love/reference#delete_-workspace-id-members-member-id-activities-id) </details> ## Note Methods <details> <summary><code>listMemberNotes(memberId, options)</code></summary> ```js const memberId = 'janesmith04' const options = { page: 1 } orbitActivities.listMemberNotes(memberId, options).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` `options` is not a required parameter, but can be any query parameter shown in our API reference. [__Get the member's notes__ API reference.](https://docs.orbit.love/reference#get_-workspace-id-members-member-id-notes) </details> <details> <summary><code>createNote(memberId, body)</code></summary> ```js const memberId = 'janesmith04' const body = 'Had a really excellent interview with Jane today.' orbitActivities.createNote(memberId, body).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` [__Create a note__ API reference.](https://docs.orbit.love/reference#post_-workspace-id-members-member-id-notes) </details> <details> <summary><code>updateNote(memberId, noteId, body)</code></summary> ```js const memberId = 'janesmith04' const noteId = '12345' const body = 'Had a really excellent interview with Jane today. Here is some more info.' orbitActivities.updateNote(memberId, noteId, body).then(data => { console.log(data) }).catch(error => { console.error(error) }) ``` [__Update a note__ API reference.](https://docs.orbit.love/reference#put_-workspace-id-members-member-id-notes-id) </details> ## Contributing We 💜 contributions from everyone! Check out the [Contributing Guidelines](.github/CONTRIBUTING.md) for more information. ## License This is available as open source under the terms of the [MIT License](LICENSE). ## Code of Conduct This project uses the [Contributor Code of Conduct](.github/CODE_OF_CONDUCT.md). We ask everyone to please adhere by its guidelines.