Notifications Support
Support for Notifications to the authenticated user is provided via the following collection:
/api/notifications
Querying Notifications
The following fetches the current notifications for the authenticated user:
GET /api/notifications
{
"name": "notifications",
"count": 3,
"subcount": 3,
"resources": [
{
"href": "http://localhost:3000/api/notifications/44"
},
{
"href": "http://localhost:3000/api/notifications/45"
},
{
"href": "http://localhost:3000/api/notifications/46"
}
],
"actions": [
{
"name": "mark_as_seen",
"method": "post",
"href": "http://localhost:3000/api/notifications"
},
{
"name": "delete",
"method": "post",
"href": "http://localhost:3000/api/notifications"
}
]
}
Or fetching additional details on the notifications as follows:
GET /api/notifications?expand=resources&attributes=details
{
"name": "notifications",
"count": 3,
"subcount": 3,
"resources": [
{
"href": "http://localhost:3000/api/notifications/44",
"id": "44",
"user_id": "1",
"seen": false,
"details": {
"level": "info",
"created_at": "2016-11-03T17:23:29Z",
"text": "Vm [aab-test] was powered on",
"bindings": {
"initiator": {
"link": {
"id": "1",
"model": "User"
},
"text": "Administrator"
}
},
"seen": false
},
"actions": [
{
"name": "mark_as_seen",
"method": "post",
"href": "http://localhost:3000/api/notifications/44"
},
{
"name": "delete",
"method": "post",
"href": "http://localhost:3000/api/notifications/44"
},
{
"name": "delete",
"method": "delete",
"href": "http://localhost:3000/api/notifications/44"
}
]
},
{
"href": "http://localhost:3000/api/notifications/45",
"id": "45",
"notification_id": "22",
"user_id": "1",
"seen": true,
"details": {
"level": "info",
"created_at": "2016-11-03T17:23:29Z",
"text": "Vm [aab-test2] was powered on",
"bindings": {
"initiator": {
"link": {
"id": "1",
"model": "User"
},
"text": "Administrator"
}
},
"seen": true
},
"actions": [
{
"name": "mark_as_seen",
"method": "post",
"href": "http://localhost:3000/api/notifications/45"
},
{
"name": "delete",
"method": "post",
"href": "http://localhost:3000/api/notifications/45"
},
{
"name": "delete",
"method": "delete",
"href": "http://localhost:3000/api/notifications/45"
}
]
},
{
"href": "http://localhost:3000/api/notifications/46",
"id": "46",
"notification_id": "23",
"user_id": "1",
"seen": false,
"details": {
"level": "info",
"created_at": "2016-11-03T17:23:54Z",
"text": "Vm [aab-dev] was powered off",
"bindings": {
"initiator": {
"link": {
"id": "1",
"model": "User"
},
"text": "Administrator"
}
},
"seen": false
},
"actions": [
{
"name": "mark_as_seen",
"method": "post",
"href": "http://localhost:3000/api/notifications/46"
},
{
"name": "delete",
"method": "post",
"href": "http://localhost:3000/api/notifications/46"
},
{
"name": "delete",
"method": "delete",
"href": "http://localhost:3000/api/notifications/46"
}
]
}
],
"actions": [
{
"name": "mark_as_seen",
"method": "post",
"href": "http://localhost:3000/api/notifications"
},
{
"name": "delete",
"method": "post",
"href": "http://localhost:3000/api/notifications"
}
]
}
Marking Notifications as Seen
Marking Notifications as seen for the authenticated user is done via the mark_as_seen action as follows:
POST /api/notifications/:id
{
"action" : "mark_as_seen"
}
Or, marking several notifications as seen in a single call as follows:
POST /api/notifications
{
"action" : "mark_as_seen",
"resources" : [
{ "href" : "http://localhost:3000/api/notifications/44" },
{ "href" : "http://localhost:3000/api/notifications/45" },
...
]
}
Deleting Notifications
Deleting a notification is available via the delete action or DELETE on the individual notification as follows:
POST /api/notifications/:id
{
"action" : "delete"
}
Or simply:
DELETE /api/notifications/:id
Also, deleting multiple notifications is available via the delete action on the collection passing in references to the different notifications:
POST /api/notifications
{
"action" : "delete",
"resources" : [
{ "href" : "http://localhost:3000/api/notifications/44" },
{ "href" : "http://localhost:3000/api/notifications/45" },
...
]
}