Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/app-masters/hubstaff-node-client
Hubsfaff API node client to access your time tracking data
https://github.com/app-masters/hubstaff-node-client
Last synced: 8 days ago
JSON representation
Hubsfaff API node client to access your time tracking data
- Host: GitHub
- URL: https://github.com/app-masters/hubstaff-node-client
- Owner: app-masters
- Created: 2020-12-18T21:04:07.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-03-12T12:01:39.000Z (over 3 years ago)
- Last Synced: 2024-10-08T03:12:27.473Z (about 1 month ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@app-masters/hubstaff-node-client
- Size: 1.33 MB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Hubstaff Node Client
Simple library to access [hubstaff](https://hubstaff.com/) API V2, developed by [App Masters](https://appmasters.io/).
References: [Hubstaff developer portal](https://developer.hubstaff.com/)
# 📦 Installation
```bash
yarn add @app-masters/hubstaff-node-client
```
or```bash
npm i @app-masters/hubstaff-node-client
```# 🔨 How to use
- Before starting to use the methods, we need to send some parameters to the Hubstaff instance.
- The first parameter is an object containing the `accessToken` and the `refreshToken`. (Click [here](#⚙-How-to-get-the-access-and-refresh-token:) to see how to get them).
- The second is a callback function that will be called every time the access token is refreshed.**Tip:** this function receives two parameters, `accessToken` and the `refreshToken`, you may consider saving these tokens into some database.
```js
import Hubstaff from '@app-masters/hubstaff-node-client';const refreshTokenCallback = (accessToken, refreshToken) => {
console.log("A new token has received");
console.log("access token", accessToken);
console.log("refresh token", refreshToken);
};const hubstaff = new Hubstaff({ accessToken: "your-access-token", refreshToken: "your-refresh-token" }, refreshTokenCallback);
//...
```
- By now you can access the methods.Simple exemple:
```js
//...// Get organizations
const orgs = hubstaff.getOrganizations();
console.log(orgs);
/* Output:
[
{
id: 55426,
name: 'App Masters',
status: 'active',
created_at: '2017-06-05T12:21:08.432670Z',
updated_at: '2020-12-07T17:00:04.712558Z',
metadata: {},
invite_url: 'https://app.hubstaff.com/organizations/invite/exfImdk6Skl213g'
}
]
*/// Get projects
const projects = hubstaff.getProjects(orgs[0].id);
console.log(projects); // Output: Project[]// Get tasks
const tasks = hubstaff.getTasks(orgs[0].id);
console.log(tasks); // Output: Task[]// Get activities
const activities = hubstaff.getActivities(orgs[0].id);
console.log(activities); // Output: Activity[]
```# ⚙ How to get the access and refresh token:
- Access https://developer.hubstaff.com/personal_access_tokens
- Create your own access token and copy the `refresh_token` that will be generated.
```js
import Hubstaff from '@app-masters/hubstaff-node-client';const tokenObj = Hubstaff.getAccessToken('your-refresh-token');
console.log(tokenObj.accessToken); // Output: 'your-access-token'
console.log(tokenObj.refreshToken); // Output: 'your-refresh-token'
```# ✅ How to test
- Copy the `variables.examples.ts` file and create a new file `variables.ts` inside folder `__tests__`.
- In that new file assign your access_token to the `accessToken` variable that is already declared.
```js
accessToken: 'your-access-token',
refreshToken: '', // you can leave it blank (only for test)
```
- Now you can run the tests with this command on terminal:
```bash
yarn run test
# or
npm run test
```# ⚠ Caveats
- This client makes the pagination by itself, so if the method has more than 500 records the method will make the pagination and return all of them.
# 🤝 How to contribute
We focused just on some endpoints we need to use, but is really simple to add any other.
Feel free to contribute, start by opening a issue please.