To manage comments for a node, use the CommentsApi and the following methods:
Method | Description |
---|---|
createComment | Create a comment for a node |
deleteComment | Delete a comment for a node |
listComments | List comments for a node |
updateComment | Update a comment for a node |
For more information about this ReST API endpoint, see Manage Comments for a Folder or File.
For a description of the common parameters, such as include, see Common Parameters.
import org.alfresco.core.handler.CommentsApi; import org.alfresco.core.model.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Component public class ManageCommentsCmd { static final Logger LOGGER = LoggerFactory.getLogger(ManageCommentsCmd.class); private Integer skipCount = 0; private Integer maxItems = 100; private List<String> fields = new ArrayList<>(); // Fetch only the fields we are interested in public ManageCommentsCmd() { fields.add("content,createdAt"); } @Autowired CommentsApi commentsApi; public void execute(String nodeId) throws IOException { Comment firstComment = createComment(nodeId, "First comment"); Comment secondComment = createComment(nodeId, "Second comment"); LOGGER.info("Listing comments: "); CommentPagingList comments = commentsApi.listComments(nodeId, skipCount, maxItems, fields).getBody().getList(); for (CommentEntry commentEntry: comments.getEntries()) { LOGGER.info(" {}", commentEntry.getEntry()); } } private Comment createComment(String nodeId, String text) { CommentBody commentBody = new CommentBody(); commentBody.setContent(text); Comment comment = commentsApi.createComment(nodeId, commentBody, fields).getBody().getEntry(); LOGGER.info("{}", comment); return comment; } }
Note the use of the fields parameter to limit the number of fields returned with each call, which saves bandwidth.
Executing the code gives a log like follows:
% java -jar target/rest-api-0.0.1-SNAPSHOT.jar manage-comments 0492460b-6269-4ca1-9668-0d934d2f3370 2021-05-03 18:54:48.085 INFO 26804 --- [ main] o.a.tutorial.restapi.RestApiApplication : Started RestApiApplication in 3.075 seconds (JVM running for 3.55) 2021-05-03 18:54:48.087 INFO 26804 --- [ main] o.a.tutorial.restapi.RestApiApplication : args[0]: manage-comments 2021-05-03 18:54:48.088 INFO 26804 --- [ main] o.a.tutorial.restapi.RestApiApplication : args[1]: 0492460b-6269-4ca1-9668-0d934d2f3370 2021-05-03 18:54:48.373 INFO 26804 --- [ main] o.a.tutorial.restapi.ManageCommentsCmd : class Comment { id: null title: null content: First comment createdBy: null createdAt: 2021-05-03T17:54:48.224Z edited: null modifiedBy: null modifiedAt: null canEdit: null canDelete: null } 2021-05-03 18:54:48.492 INFO 26804 --- [ main] o.a.tutorial.restapi.ManageCommentsCmd : class Comment { id: null title: null content: Second comment createdBy: null createdAt: 2021-05-03T17:54:48.417Z edited: null modifiedBy: null modifiedAt: null canEdit: null canDelete: null } 2021-05-03 18:54:48.492 INFO 26804 --- [ main] o.a.tutorial.restapi.ManageCommentsCmd : Listing comments: 2021-05-03 18:54:48.545 INFO 26804 --- [ main] o.a.tutorial.restapi.ManageCommentsCmd : class Comment { id: null title: null content: Second comment createdBy: null createdAt: 2021-05-03T17:54:48.417Z edited: null modifiedBy: null modifiedAt: null canEdit: null canDelete: null } 2021-05-03 18:54:48.545 INFO 26804 --- [ main] o.a.tutorial.restapi.ManageCommentsCmd : class Comment { id: null title: null content: First comment createdBy: null createdAt: 2021-05-03T17:54:48.224Z edited: null modifiedBy: null modifiedAt: null canEdit: null canDelete: null }