{
"ocs": {
...
"data": {
...
"capabilities": {
...
"user_status": {
"enabled": true
}
}
}
}
}
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": null
},
"data": [
{
"userId": "admin",
"statusType": "busy",
"createdAt": 1589795903
},
{
"userId": "user",
"statusType": "holiday",
"statusIcon": "🏝",
"message": "On Vacation",
"createdAt": 1589795903,
"clearAt": 1589795904,
}
]
}
}
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": null
},
"data": {
"userId": "admin",
"statusType": "busy",
"createdAt": 1589795903
}
}
}
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": null
},
"data": {
"userId": "admin",
"statusType": "busy",
"createdAt": 1589795903
}
}
}
The APIs should respect the sharing privacy settings. (e.g. only allow to fetch status within own groups, etc.)
Summary
It would be nice if in your Nextcloud you could relay your own status to other users. So they know what you are doing.
Details
A lot of modern communication platforms have statuses. Something like that would be useful for Nextcloud as well. That way you can signal that you are busy, on holiday, on site somewhere etc.
To be extended
API
Details
DB:
user_statusid(unsigned int, not null, autoincrement)user_id(string, not null)status_type(string, not null) => available, busy, unavailablestatus_icon(string) => 1 unicode charactermessage(string) => custom messagecreated_at(unsigned int, not null) => unixtimeclear_at(unsigned int) => unixtimeAPI spec (OCS):
Req:
GET /ocs/v1.php/cloud/capabilitiesRes:
Req:
GET /ocs/v1.php/apps/user_status/api/v1/statusesRes:
Allowed parameters:
limitoffsetReq:
GET /ocs/v1.php/apps/user_status/api/v1/statuses/adminRes:
Req:
GET /ocs/v1.php/apps/user_status/api/v1/statusRes:
Set a new status:
Req:
PUT /ocs/v1.php/apps/user_status/api/v1/statusClear status:
Req:
DELETE /ocs/v1.php/apps/user_status/api/v1/statusNotes on privacy:
The APIs should respect the sharing privacy settings. (e.g. only allow to fetch status within own groups, etc.)
Acceptance criteria
To be extended.