Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/suspiciouslookingowl/karyakarsa-api

Karyakarsa API Wrapper for NodeJS
https://github.com/suspiciouslookingowl/karyakarsa-api

Last synced: 1 day ago
JSON representation

Karyakarsa API Wrapper for NodeJS

Awesome Lists containing this project

README

        

# Karyakarsa (WIP)

An unofficial API Wrapper for [Karyakarsa](karyakarsa)

### Example
```js
const { Client } = require("karyakarsa");
// or for ES6
import { Client } from "karyakarsa";

const client = new Client();

client.on("donation", (donation) => {
console.log(donation);
});

client.setStreamKey("your-stream-key");
client.run();
```

Example donation data:
```js
{
id: 'db22d3bb7e716b22bd1e4e06def93fab235fcb6b',
name: 'AKUN TEST',
total: 15000,
notes: 'Semangat terus yaahhhh!',
createdAt: '2021-03-11 20:59:23'
}
```

---

## Client API

### async login(jwt)

Login to Karyakarsa using JWT. This will set the default header authorization value for the future requests with user's JWT

**JWT generated by Karyakarsa lasts for 1 year**.

To get your JWT, follow these steps (for chromium based browser):
1. Login to [Karyakarsa](https://karyakarsa.com/)
2. Open DevTools (F12)
3. Open `Application` Tab
4. Expand `Cookies`, and click on `https://karyakarsa.com/`
5. Copy `vueauth_access_token` cookie value

![Example](https://i.ibb.co/bdvDdJt/image.png)

### async getBalance()

Get current balance, returns a `number`

### async getSupportersHistory(page = 1)

Get supporters history. Result example:

```js
[
{
total: 5000,
status: 'settlement',
notes: null,
paymentMethod: 'ovo',
duration: 1,
createdAt: '2021-03-11T13:26:43.000000Z',
updatedAt: '2021-03-11T13:27:14.000000Z',
supportType: 'tier',
voucher: null,
voucherValue: 0,
tip: 0,
tierTitle: 'Tier Example',
userName: 'Name Example',
userEmail: '[email protected]'
}
]
```

### async getSupporters(page = 1)

Get supporters. Result example:

```js
[
{
id: 143568,
name: 'Example name',
email: '[email protected]',
lastSupport: '2021-03-11 20:26:43',
numSupport: 1,
valueSupport: '5000'
}
]
```