########
Comments
########
Comments have a PHP API within OCP and also via WebDAV. Basic documentation below.
Endpoint
^^^^^^^^
The Comments resource has an endpoint:
```
remote.php/comments/$OBJECTTYPE/$OBJECTID [/$COMMENTID]
```
The `ObjectID` endpoint accepts:
* `POST` for creating a comment
* `PROPFIND` to list comments, and also the read mark. You need to specify
attributes in the request.
* `PROPPATCH` to update the read mark, property name:
{http://owncloud.org/ns}readMarker
* `REPORT` to search comments
The `CommentID` endpoint accepts:
* `PROPPATCH` to update the comment
* `DELETE` to delete it
* `PROPFIND` to list all properties
For a list of properties, see:
`https://github.com/nextcloud/server/blob/master/apps/dav/lib/Comments/CommentNode.php#L108`
Examples
********
REPORT request::
curl -u user:pwd -i --data-binary "@report.xml" -X REPORT -H "Content-Type: text/xml" http://test.nextcloud.bla/master/remote.php/dav/comments/files/2156
report.xml your receive:
.. code-block:: xml
5
0
2016-01-18 22:10:30
Example Output (without headers):
.. code-block:: xml
3
0
0
0
first
comment
users
master
files
2156
2016-01-18 22:01:16
2016-01-20 14:01:24
2
0
0
0
first
comment
users
master
files
2156
2016-01-18 22:01:12
2016-01-20 14:01:24
If you want a real life example of use, the announcement center has comments implemented.
See the comments related files in `https://github.com/nextcloud/announcementcenter/tree/master/js`
for frontend matters. Backendwise `OCP\Comments\ICommentsManager` is mostly close for housekeeping.
It was introduced in https://github.com/nextcloud/announcementcenter/pull/12, but
there are also some follow up PRs.