-
Notifications
You must be signed in to change notification settings - Fork 8
Presence
The Presence API is a representation of user presentities within Huddle.
Operation |
---|
Retrieve Audit Entry |
Create Presence |
Retrieve Presence by User |
Retrieve Presence by Users |
Retrieve Presence by Team |
Retrieve Presence by Workspace |
Update Presence |
Delete Presence |
This API is to get the audit list based on the given User. The audit lists will be used to verify the previous actions performed by the given User.
Example request, asking for the Audit Entry for User with ID 123:
GET /presence/123/audits HTTP/1.1
Accept: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"links": [
{
"rel": "self",
"href": "..."
},
{
"rel": "parent",
"href": "..."
}
],
"audits": [
{
"auditType": "create",
"timeStamp": "2022-04-20T16:30:29+00:00",
"context": "{'id':999}"
},
{
...
}
]
}
Name | Description |
---|---|
auditType | The type of the action performed by the User (eg. create, update, delete) |
context | The details of the action performed by the User (eg. The newly created Presence Id, the updated message of Presence) |
Name | Description | Methods |
---|---|---|
self | The URI of the Audits | GET |
parent | The URI of the User | GET |
first | The URI to move to first page | GET |
previous | The URI to move to previous page | GET |
next | The URI to move to next page | GET |
Case | Response Code | Error Code |
---|---|---|
No User provided | 400 Bad Request | UserNotProvided |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
User does not exist | 404 Not Found | UserNotFound |
This API will be called when users turn on their OOO setting. This API will not invalidate the previous Presence data and will create a new instance of Presence instead.
Example request:
POST /presence/create HTTP/1.1
Content-Type: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
{
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
}
Field | Data Type | Required | Example |
---|---|---|---|
isActive | Boolean | Required | true |
startDate | DateTimeOffset | Optional | "2022-08-19T16:30:29+00:00" |
endDate | DateTimeOffset | Optional | "2022-08-19T16:30:29+00:00" |
message | String | Optional | "John Doe is OOO." |
Example response, Presence with ID 456 is created:
HTTP/1.1 201 Created
Content-Type: application/json
Content-Location: .../presence/456
{
"links": [
{
"rel": "self",
"href": "..."
},
{
"rel": "user",
"href": "..."
}
],
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
}
Name | Description | Methods |
---|---|---|
self | The URI of the newly created Presence | GET |
user | The URI of the User | GET |
Case | Response Code | Error Code |
---|---|---|
Date values invalid | 400 Bad Request | DateInvalid |
Date range invalid | 400 Bad Request | DateRangeInvalid |
Message exceeds 280 characters | 400 Bad Request | MessageLengthLimitExceeded |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
This API is designed to allow the user to able to retrieve the Presence data for a single User. This API can only be called by the User themselves when they are trying to view/change their own OOO setting. The User will need to have a valid authentication token to call this API.
Example request, asking for the Presence for User with ID 123:
GET /presence/123 HTTP/1.1
Accept: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"presenceEntities": [
{
"links": [
{
"rel": "user",
"href": "..."
},
{
"rel": "presence",
"href": "..."
}
],
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
},
{
...
}
]
}
Name | Description | Methods |
---|---|---|
self | The URI of the Presence of the User | GET |
Case | Response Code | Error Code |
---|---|---|
No User provided | 400 Bad Request | UserNotProvided |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
User does not exist | 404 Not Found | UserNotFound |
This API is designed to allow the user to retrieve the list of Presence data based on the given list of Users and a range of dates. This API can be called by the User who has access/permission to view a list of Users.
Example request:
POST /presence HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
{
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"links": [
{
"rel": "user",
"href": "..."
},
{
...
}
]
}
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"links": [
{
"rel": "self",
"href": "..."
}
],
"presenceEntities": [
{
"links": [
{
"rel": "user",
"href": "..."
},
{
"rel": "presence",
"href": "..."
}
],
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
},
{
...
}
]
}
Name | Description | Methods |
---|---|---|
self | The URI of the Presences | GET |
user | The URI of the User | GET |
presence | The URI of the Presence | GET |
first | The URI to move to first page | GET |
previous | The URI to move to previous page | GET |
next | The URI to move to next page | GET |
Case | Response Code | Error Code |
---|---|---|
No User provided | 400 Bad Request | UserNotProvided |
Date values invalid | 400 Bad Request | DateInvalid |
Date range invalid | 400 Bad Request | DateRangeInvalid |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
User does not exist | 404 Not Found | UserNotFound |
This API is designed to allow the user to able to retrieve the list of Presence data based on the given Team and a range of dates. This API can be called by User who is able to view the Team. (eg. The Team creator, the Team members) Firstly, the User must be authenticated by using the authentication token. Then, the User will go through authorization process to ensure the User has the sufficient permission to access the Team information to call this API.
Example request, asking for the Presence for Team with ID 123:
POST /presence/teams/123 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
{
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"links": [
{
"rel": "team",
"href": "..."
}
]
}
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"links": [
{
"rel": "self",
"href": "..."
}
],
"presenceEntities": [
{
"links": [
{
"rel": "user",
"href": "..."
},
{
"rel": "presence",
"href": "..."
}
],
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
},
{
...
}
]
}
Name | Description | Methods |
---|---|---|
self | The URI of the Team | GET |
user | The URI of the User | GET |
presence | The URI of the Presence | GET |
first | The URI to move to first page | GET |
previous | The URI to move to previous page | GET |
next | The URI to move to next page | GET |
Case | Response Code | Error Code |
---|---|---|
No Team provided | 400 Bad Request | TeamNotProvided |
Date values invalid | 400 Bad Request | DateInvalid |
Date range invalid | 400 Bad Request | DateRangeInvalid |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
Any permission errors | 403 Forbidden | InsufficientPermissions |
User is not a member of the Team | 403 Forbidden | TeamMembershipRequired |
Team is deleted | 403 Forbidden | TeamDeleted |
No valid Team provided | 404 Not Found | TeamNotFound |
This API is designed to allow the user to able to retrieve the list of Presence data based on the given Workspace and a range of dates. This API can be called by User who is able to view the Workspace. (eg. The Workspace creator, the Workspace members) Firstly, the User must be authenticated by using the authentication token. Then, the User will go through authorization process to ensure the User has the sufficient permission to access the Workspace information to call this API.
Example request, asking for the Presence for Workspace with ID 123:
POST /presence/workspace/{workspaceId} HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
{
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"links": [
{
"rel": "workspace",
"href": "..."
}
]
}
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"links": [
{
"rel": "self",
"href": "..."
}
],
"presenceEntities": [
{
"links": [
{
"rel": "user",
"href": "..."
},
{
"rel": "presence",
"href": "..."
}
],
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
},
{
...
}
]
}
Name | Description | Methods |
---|---|---|
self | The URI of the Workspace | GET |
user | The URI of the User | GET |
presence | The URI of the Presence | GET |
first | The URI to move to first page | GET |
previous | The URI to move to previous page | GET |
next | The URI to move to next page | GET |
Case | Response Code | Error Code |
---|---|---|
No Workspace provided | 400 Bad Request | WorkspaceNotProvided |
Date values invalid | 400 Bad Request | DateInvalid |
Date range invalid | 400 Bad Request | DateRangeInvalid |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
Any permission errors | 403 Forbidden | InsufficientPermissions |
User is not a member of the Workspace | 403 Forbidden | WorkspaceMembershipRequired |
Workspace is archived | 403 Forbidden | WorkspaceArchived |
Workspace is locked | 403 Forbidden | WorkspaceLocked |
Workspace is deleted | 403 Forbidden | WorkspaceDeleted |
No valid Workspace provided | 404 Not Found | WorkspaceNotFound |
This API will be called to update the details within the OOO setting for a User. (eg. isActive , startDate, endDate, message) If the User or Presence is invalid, no Presence will be updated. Only the User(owner) can update the OOO setting by themselves with a valid authentication token.
Example request, updating Presence with ID 456 for User with ID 123:
PUT /presence/123/456 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
{
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
}
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Location: /presence/123/456
{
"links": [
{
"rel": "self",
"href": "..."
},
{
"rel": "user",
"href": "..."
},
{
"rel": "presence",
"href": "..."
}
],
"isActive": true,
"startDate": "2022-04-19T16:30:29+00:00",
"endDate": "2022-04-20T16:30:29+00:00",
"message": "out of office"
}
Name | Description | Methods |
---|---|---|
self | The URI of the updating Presence | GET |
user | The URI of the User | GET |
presence | The URI of the Presence | GET |
Case | Response Code | Error Code |
---|---|---|
Invalid date data provided | 400 Bad Request | PresenceDateInvalid |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
Insufficient permission | 403 Forbidden | InsufficientPermission |
No valid User provided | 404 Not Found | UserNotFound |
No valid Presence provided | 404 Not Found | PresenceNotFound |
This API will be called to remove the current OOO status for a User.
Example request, deleting Presence with ID 456 for User with ID 123:
DELETE /presence/123/456 HTTP/1.1
Content-Type: application/json
Authorization: Bearer frootymcnooty/vonbootycherooty
Example response:
HTTP/1.1 204 No Content
Case | Response Code | Error Code |
---|---|---|
No User provided | 400 Bad Request | UserNotProvided |
No Presence provided | 400 Bad Request | PresenceNotProvided |
Invalid authorization token | 401 Unauthorized | AccessTokenInvalid |
Insufficient permission | 403 Forbidden | InsufficientPermission |
User does not exist | 404 Not Found | UserNotFound |
Presence does not exist | 404 Not Found | PresenceNotFound |
- Basic concepts
-
Resources
- Actor
- Approvals
- BulkProcess
- Calendar
- Membership
- Company
- Document
- Document library settings
- Folder
- Paged Folder
- Pins
- Integrations
- Form
- Friends
- Invitation
- Link
- Document Lock
- Folder Lock
- Localisation
- MemberAutocomplete
- Notifications
- Offline item
- PeopleBulkProcess
- Permissions
- Presence
- PublishedDocuments
- Recents
- Recommendations
- Recycle Bin
- Search
- Share
- Tasks (Todos), File Requests, Approvals
- Tasks on Documents
- Actions
- UserApprovals
- User
- VersionHistory
- Workspace
- Workspaces
- SamlPartners
- Logout
- Impersonation
- Administration
- WebHooks