## Evaly Notifier
`Evaly Aggregator ` connects to a grpc server running on `Evaly Notifier` that exposes push/app notifications for web apps to consume.
It exposes four api endpoints on notification base url : `/api/v1/notification`.
### List Notifications :
- `Description:`
This api returns a paginated list of notifications available for a user based on the given parameters.
- `Endpoint` : `/`
- `Method` : `GET`
- `Headers` :
- `Authorization` : < your access token here >
- `Query Parameters` :
- `page` : (optional) - page number of the paginated notification-list, default : 1.
- `limit` : (optional) - number of notifications from the paginated notification-list to be loaded per page.
- `seen` : (optional) - This field takes a boolean value (ie. true/false).
- If seen is "false", the resulting list contains only the unseen notifications.
- If seen is "true", the resulting list contains only the seen notifications.
- If seen parameter is unused, the resulting list contains both the seen, and the unseen notifications.
- `Request Body` : N/A
- `Response Body` :
```json
{
"message": "Successful",
"data": [
{
"notification_id": "rtln_0e191937-93a7-4e05-8caf-279186836fff_1594724585965934529",
"TargetAppName": "evaly",
"created_at": "Tue, 14 Jul 2020 11:03:05",
"updated_at": "Tue, 14 Jul 2020 11:03:08",
"notification_type": "all",
"subject": "test",
"AppNotificationContent": {
"data": {
"body": "body of data",
"title": "title of data"
},
"notification": {
"body": "বাংলা লেখা Tue, 14 Jul 2020 17:03:05",
"title": "System notification"
}
}
},
{
"notification_id": "rtln_e8862674-3d4c-4f54-bfbe-cf459cd0ded4_1594724630486443928",
"TargetAppName": "evaly",
"created_at": "Tue, 14 Jul 2020 11:03:50",
"updated_at": "Tue, 14 Jul 2020 11:03:52",
"notification_type": "single",
"recipient": "01723456789",
"subject": "test",
"AppNotificationContent": {
"data": {
"body": "body of data",
"title": "title of data"
},
"notification": {
"body": "বাংলা লেখা Tue, 14 Jul 2020 17:03:50",
"title": "System notification"
}
}
}
]
}
```
`Message` field contains "successful" or error log for unsuccessful requests. `Data` field contains the actual notification-list.
### Count Notifications :
- `Description:`
This api returns the number of notifications available for a user based on the given parameters.
- `Endpoint` : `/count`
- `Method` : `GET`
- `Headers` :
- `Authorization` : < your access token here >
- `Query Parameters` :
- `seen` : (optional) - This field takes a boolean value (ie. true/false).
- If seen is "false", the result contains the number of unseen notifications only.
- If seen is "true", the result contains the number of seen notifications only.
- If seen parameter is unused, the result contains the number of both the seen, and the unseen notifications.
- `Request Body` : N/A
- `Response Body` :
```json
{
"message": "Successful",
"data": {
"Count": 2
}
}
```
`Message` field contains "successful" or error log for unsuccessful requests. `Data` field contains the actual notification count.
### Mark Notifications :
- `Description:`
This api marks all the unseen notifications as seen for the user.
- `Endpoint` : `/mark`
- `Method` : `GET`
- `Headers` :
- `Authorization` : < your access token here >
- `Query Parameters` : N/A
- `Request Body` : N/A
- `Response Body` :
```json
{
"message": "Successful",
"data": {
"Marked": true
}
}
```
`Message` field contains "successful" or error log for unsuccessful requests. `Data` field contains the actual marking confirmation.
### Mark Single Notification :
- `Description:`
This api marks a single unseen notification as seen for the user by using `notification_id`.
- `Endpoint` : `/{notification_id}/mark`
- `Method` : `GET`
- `Headers` :
- `Authorization` : < your access token here >
- `Query Parameters` : N/A
- `Request Body` : N/A
- `Response Body` :
```json
{
"message": "Successful",
"data": {
"Marked": true
}
}
```
`Message` field contains "successful" or error log for unsuccessful requests. `Data` field contains the actual marking confirmation.