# Emil Account 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/account-sdk@1.49.0 --save
```
or 
```
yarn add @emilgroup/account-sdk@1.49.0
```

And then you can import `AccountsApi`.

```ts
import { AccountsApi } from '@emilgroup/account-sdk'

const accountsApi = new AccountsApi();
```

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

```ts
async function listAccounts(): Promise<Void> {
    try {
        const accountsApi = new AccountsApi();

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

        const { data: { items } } = await accountsApi.listAccounts();

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