 # Events Gateway Client
Library to send messages through the events gateway service.

## How to use it
To use the library you just need to follow the following steps Install the library with npm

```npm install @condor-labs/ec-events-gateway```

Import the library

```const { events } = require('@condor-labs/ec-events-gateway');```

with ES6:

``` import { events } from '@condor-labs/ec-events-gateway': ```

### Enviroment variable
Define a variable in you **.env** file with the events gateway api URL with the following name:

```EVENTS_GATEWAY_URL```

That's all you need to start to send data to the events gateway api.

As an alternative you can pass a events gateway api url as parameter:

```events.save({payload, type, topic, schema, headers, url: 'http://localhost'});```

### Required data
To send events through the events gateway client you must send some required fields:

- type: string,
- topic: string, 
- payload: object

### Client Schema

> @hapi/joi is not valid any more use [Joi](https://www.npmjs.com/package/joi) instead

You could define a valid Joi (Joi >= 17.9.2) schema to validate the events data you are sending to the events gateway service.

**Example**
```
const schema = {
    firstName: Joi.number().required()
};
```

You can see more examples on the Joi API Documentation [Website](https://github.com/hapijs/joi/blob/v17.9.2/API.md).

And then send this schema through the **save** function as parameter.

```events.save({payload, type, topic, schema, headers, url: 'http://localhost'});```

### Headers:
You should define headers to pass the apikey to the amazon services:
```
headers: {
    'x-api-key': 'value'
}
```

### Payload max size
Please, be sure the payload data is less than **250kb**




