User's Notifications preferences
This section describes the API of the user's notifications preferences. An user can set his notifications preferences according to an event in Rexpense. These events are listed bellow:
Email notifications attributes
email_on_expense_created: | boolean |
email_on_expense_updated: | boolean |
email_on_expense_destroyed: | boolean |
email_on_expense_status_changed: | boolean |
email_on_attachment_created: | boolean |
email_on_attachment_destroyed: | boolean |
email_on_comment_created: | boolean |
email_on_comment_updated: | boolean |
email_on_comment_destroyed: | boolean |
email_on_organization_add_member: | boolean |
email_on_organization_remove_member: | boolean |
email_on_organization_left: | boolean |
email_on_organization_role_changed: | boolean |
email_on_advancement_created: | boolean |
email_on_advancement_updated: | boolean |
email_on_advancement_destroyed: | boolean |
email_on_reimbursement_created: | boolean |
email_on_reimbursement_updated: | boolean |
email_on_reimbursement_destroyed: | boolean |
email_on_advancement_devolution_created: | boolean |
Mobile notifications attributes
mobile_on_expense_created: | boolean |
mobile_on_expense_updated: | boolean |
mobile_on_expense_destroyed: | boolean |
mobile_on_expense_status_changed: | boolean |
mobile_on_attachment_created: | boolean |
mobile_on_attachment_destroyed: | boolean |
mobile_on_comment_created: | boolean |
mobile_on_comment_updated: | boolean |
email_on_comment_destroyed: | boolean |
mobile_on_organization_add_member: | boolean |
mobile_on_organization_remove_member: | boolean |
mobile_on_organization_left: | boolean |
mobile_on_organization_role_changed: | boolean |
mobile_on_advancement_created: | boolean |
mobile_on_advancement_updated: | boolean |
mobile_on_advancement_destroyed: | boolean |
mobile_on_reimbursement_created: | boolean |
mobile_on_reimbursement_updated: | boolean |
mobile_on_reimbursement_destroyed: | boolean |
mobile_on_advancement_devolution_created: | boolean |
Example User's Notifications
{
"user": {
"id": 1,
"locale": "pt",
"timezone": "Brasilia",
"mention_name": "JohnFoo",
"default_currency": "USD",
"avatar": [],
"_links": [
{
"rel": "self",
"href": "https://app.rexpense.com/api/v1/preferences",
"method": "GET"
},
{
"rel": "update",
"href": "https://app.rexpense.com/api/v1/preferences",
"method": "PUT"
},
{
"rel": "partial_update",
"href": "https://app.rexpense.com/api/v1/preferences",
"method": "PATCH"
}
]
},
"email_on_expense_created": true,
"email_on_expense_updated": true,
"email_on_expense_destroyed": true,
"email_on_attachment_created": true,
"email_on_attachment_destroyed": true,
"email_on_comment_created": true,
"email_on_comment_updated": true,
"email_on_comment_destroyed": true,
"email_on_organization_add_member": true,
"email_on_organization_left": true,
"email_on_organization_remove_member": true,
"email_on_organization_role_changed": true,
"email_on_advancement_created": true,
"email_on_advancement_updated": true,
"email_on_advancement_destroyed": true,
"email_on_reimbursement_created": true,
"email_on_reimbursement_updated": true,
"email_on_reimbursement_destroyed": true,
"email_on_advancement_devolution_created": true,
"mobile_on_expense_created": true,
"mobile_on_expense_updated": true,
"mobile_on_expense_destroyed": true,
"mobile_on_attachment_created": true,
"mobile_on_attachment_destroyed": true,
"mobile_on_comment_created": true,
"mobile_on_comment_updated": true,
"mobile_on_comment_destroyed": true,
"mobile_on_organization_add_member": true,
"mobile_on_organization_left": true,
"mobile_on_organization_remove_member": true,
"mobile_on_organization_role_changed": true,
"mobile_on_advancement_created": true,
"mobile_on_advancement_updated": true,
"mobile_on_advancement_destroyed": true,
"mobile_on_reimbursement_created": true,
"mobile_on_reimbursement_updated": true,
"mobile_on_reimbursement_destroyed": true,
"mobile_on_advancement_devolution_created": true,
"_links": [
{
"rel": "self",
"href": "https://app.rexpense.com/api/v1/notifications",
"method": "GET"
},
{
"rel": "update",
"href": "https://app.rexpense.com/api/v1/notifications",
"method": "PUT"
},
{
"rel": "partial_update",
"href": "https://app.rexpense.com/api/v1/notifications",
"method": "PATCH"
}
]
}
Show notifications preferences
Returns the detailed information of the user's notifications preferences.
Definition
GET https://app.rexpense.com/api/v1/notification_preferences
Example Request
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/notification_preferences \ -H 'Accept: application/json' \ -H 'Content-type: application/json'
Response Example
HTTP 200 OK
{
"user": {
...
},
"email_on_expense_created": true,
...
}
Update notifications preferences
There are two ways to update the user's notifications: partially or fully.
If you'd like to change just one or a few attributes, you have to use the HTTP method PATCH
.
If you use the HTTP method PUT
, you'll have to pass all attributes of the user's notifications preferences.
Parameters
Possible parameters are describe in the section above.
Definition
PUT/PATCH https://app.rexpense.com/api/v1/notification_preferences
Example Request
$ curl -u $YOUR_API_TOKEN:X -X PATCH https://app.rexpense.com/api/v1/notification_preferences \ -H 'Accept: application/json' \ -H 'Content-type: application/json' \ -d '{"locale":"en"}'
Response Example Success
HTTP 200 OK
{
"user": {
...
},
"email_on_expense_created": true,
...
}
Response Example Failure
HTTP 422 Unprocessable Entity
{
"errors": {
"email_on_expense_created": ["can't be blank"]
}
}
Describe notifications preferences
Returns the names and description of the user's notifications.
Definition
GET https://app.rexpense.com/api/v1/notification_preferences/descriptions
Example Request
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/notification_preferences/descriptions \ -H 'Accept: application/json' \ -H 'Content-type: application/json'
Response Example
HTTP 200 OK
[
{
"names": ["email_on_expense_status_changed", "mobile_on_expense_status_changed"],
"description": "The status of an expense was updated",
},
{
"names": ["email_on_expense_created", "mobile_on_expense_created"]
"description": "A new expense was created"
},
{
"names": ["email_on_expense_updated", "mobile_on_expense_updated"],
"description": "An expense was updated"
},
{
"names": ["email_on_expense_destroyed", "mobile_on_expense_destroyed"],
"description": "An expense was deleted"
},
{
"names": ["email_on_attachment_created", "mobile_on_attachment_created"],
"description": "A new attachment was added in the expense"
},
{
"names": ["email_on_attachment_destroyed", "mobile_on_attachment_destroyed"],
"description": "An attachment was deleted from an expense"
},
{
"names": ["email_on_comment_created", "mobile_on_comment_created"],
"description": "A comment was added in an expense"
},
{
"names": ["email_on_comment_updated", "mobile_on_comment_updated"],
"description": "A comment was updated"
},
{
"names": ["email_on_comment_destroyed", "mobile_on_comment_destroyed"],
"description": "A comment was deleted"
},
{
"names": ["email_on_organization_add_member", "mobile_on_organization_add_member"],
"description": "A new member was added to an organization"
},
{
"names": ["email_on_organization_left", "mobile_on_organization_left"],
"description": "A member left the organization",
},
{
"names": ["email_on_organization_remove_member", "mobile_on_organization_remove_member"],
"description": "A member was deleted from an organization"
},
{
"names": ["email_on_organization_role_changed", "mobile_on_organization_role_changed"],
"description": "A member has its role modified in the organization"
},
{
"names": ["email_on_advancement_created", "mobile_on_advancement_created"],
"description": "A new advancement was created"
},
{
"names": ["email_on_advancement_updated", "mobile_on_advancement_updated"],
"description": "An advancement was updated"
},
{
"names": ["email_on_advancement_destroyed", "mobile_on_advancement_destroyed"],
"description": "An advancement was deleted"
},
{
"names": ["email_on_advancement_devolution_created", "mobile_on_advancement_devolution_created"],
"description": "An new advancement devolution was created"
},
{
"names": ["email_on_reimbursement_created", "mobile_on_reimbursement_created"],
"description": "A new reimbursement was created"
},
{
"names": ["email_on_reimbursement_updated", "mobile_on_reimbursement_updated"],
"description": "A reimbursement was updated"
},
{
"names": ["email_on_reimbursement_destroyed", "mobile_on_reimbursement_destroyed"],
"description": "A reimbursement was deleted"
}
]