# Emil Commission SDK

This TypeScript/JavaScript client utilizes [axios](https://github.com/axios/axios). The generated module can be used with client-based applications (i.e. React).

Language level
* ES5 - you must have a Promises/A+ library installed
* ES6

Module system
* CommonJS
* ES6 module system

Although this package can be used in both TypeScript and JavaScript, it is intended to be used with TypeScript. The definition should be automatically resolved via `package.json`. ([Reference](http://www.typescriptlang.org/docs/handbook/typings-for-npm-packages.html)). For more information, you can go to [Emil Api documentation](https://emil.stoplight.io/docs/emil-api/).

## Consuming

Navigate to the folder of your consuming project and run one of the following commands:

```
npm install @emilgroup/commission-sdk@2.4.0 --save
```
or 
```
yarn add @emilgroup/commission-sdk@2.4.0
```

And then you can import `CommissionApi`.

```ts
import { CommissionApi } from '@emilgroup/commission-sdk'

const commissionApi = new CommissionApi();
```

To use authentication protected endpoints, you have to first authorize. To do so, use the `authorize` function in `CommissionApi`:

```ts
async function listCommissions(): Promise<Void> {
    try {
        const commissionApi = new CommissionApi();

        await commissionApi.authorize('username', 'password');

        const { data: { items } } = await commissionApi.listCommissions();

        console.log(items);
    } catch(error) {
      // process error
  }
}
```
