# Moengage
### _A wrapper library for calling Moengage APIs in python_


### Installation
```shell
pip install moengage
```

### Getting Started
```shell
from moengage import Moengage

mo = Moengage(<BASE_URL>, <APP_ID>, <API_KEY>)
```
#### Points to Note:
1. `BASE_URL` is the Moengage DATA API endpoint base url. eg: "**https://api-03.moengage.com**"
2. `APP_ID` for your MoEngage account is available on the MoEngage Dashboard in Settings > App Settings > Account Settings > APP ID.
3. `API_KEY` is the api_key generated by navigating to Settings > APIs > DATA API Settings.
Please refer to MoEngage documentation for further details regarding these.

### Creating or updating user profile
```shell
mo.create_or_update_user(<USER_ID>, <USER_NAME>, <USER_PHONE>, <USER_EMAIL>, **kwargs)
```
#### Points to Note:
1. `USER_ID` is mandatory. It is a unique identifier for a user provided by the client that will be used for updating user profile and firing events for the user. 
2. `USER_NAME`, `USER_PHONE` and `USER_EMAIL` are optional parameters that will be set as user standard attributes if provided.
3. **Custom user attributes** can be set by passing the attribute name and value in keyword arguments.

### Publishing event for a user
```shell
mo.publish_event(<USER_ID>, <EVENT_NAME>, **kwargs)
```
#### Points to Note:
1. `USER_ID` is mandatory. It is the unique identifier of the user for which the event is to be tracked. 
2. `EVENT_NAME` is mandatory. The event will be tracked in MoEngage with this name.
3. **Custom event attributes** can be set by passing the attribute name and value in keyword arguments.
