From 7429e2cbc744165b1b33124e3663e9bf184dad3f Mon Sep 17 00:00:00 2001 From: norangebit Date: Tue, 12 Nov 2019 21:39:38 +0100 Subject: [PATCH] add getComment and deleteComment --- .../wekan/wrapper/api/CardCommentService.java | 45 +++++++++++++++---- .../java/wekan/wrapper/entity/Comment.java | 10 +++++ .../wrapper/api/CardCommentServiceTest.java | 33 +++++++++++--- 3 files changed, 75 insertions(+), 13 deletions(-) diff --git a/wrapper/src/main/java/wekan/wrapper/api/CardCommentService.java b/wrapper/src/main/java/wekan/wrapper/api/CardCommentService.java index b3e5e55..e1c6dc5 100644 --- a/wrapper/src/main/java/wekan/wrapper/api/CardCommentService.java +++ b/wrapper/src/main/java/wekan/wrapper/api/CardCommentService.java @@ -11,9 +11,9 @@ public interface CardCommentService { /** * Get all comments attached to a card. * - * @param boardId The ID of the board - * @param cardId The ID of the card - * @return The list of the comments + * @param boardId The ID of the board + * @param cardId The ID of the card + * @return The list of the comments */ @GET("/api/boards/{boardId}/cards/{cardId}/comments") Call> getAllComments( @@ -24,11 +24,11 @@ public interface CardCommentService { /** * Post new comment attached on the give card. * - * @param boardId The ID of the board - * @param cardId The ID of the card - * @param authorId The ID of the author - * @param comment The comment - * @return The id of the new comment + * @param boardId The ID of the board + * @param cardId The ID of the card + * @param authorId The ID of the author + * @param comment The comment + * @return The id of the new comment */ @FormUrlEncoded @POST("/api/boards/{boardId}/cards/{cardId}/comments") @@ -38,4 +38,33 @@ public interface CardCommentService { @Field("authorId") String authorId, @Field("comment") String comment ); + + /** + * Get a comment attached to a card. + * + * @param boardId The ID of the board + * @param cardId The ID of the card + * @param commentId The ID of the comment + * @return The comment + */ + @GET("/api/boards/{boardId}/cards/{cardId}/comments/{commentId}") + Call getComment( + @Path("boardId") String boardId, + @Path("cardId") String cardId, + @Path("commentId") String commentId + ); + + /** + * Delete a comment attached to a card. + * + * @param boardId The ID of the board + * @param cardId The ID of the card + * @param commentId The ID of the comment + */ + @DELETE("/api/boards/{boardId}/cards/{cardId}/comments/{commentId}") + Call deleteComment( + @Path("boardId") String boardId, + @Path("cardId") String cardId, + @Path("commentId") String commentId + ); } diff --git a/wrapper/src/main/java/wekan/wrapper/entity/Comment.java b/wrapper/src/main/java/wekan/wrapper/entity/Comment.java index 2259dfa..3ae73fa 100644 --- a/wrapper/src/main/java/wekan/wrapper/entity/Comment.java +++ b/wrapper/src/main/java/wekan/wrapper/entity/Comment.java @@ -2,11 +2,17 @@ package wekan.wrapper.entity; import com.google.gson.annotations.SerializedName; +import java.util.Date; + public class Comment { @SerializedName("_id") private String id; private String comment; private String authorId; + private String boardId; + private String cardId; + private Date createdAt; + private Date modifiedAt; public String getId() { return id; @@ -26,6 +32,10 @@ public class Comment { "id='" + id + '\'' + ", comment='" + comment + '\'' + ", authorId='" + authorId + '\'' + + ", boardId='" + boardId + '\'' + + ", cardId='" + cardId + '\'' + + ", createdAt=" + createdAt + + ", modifiedAt=" + modifiedAt + '}'; } } diff --git a/wrapper/src/test/java/wekan/wrapper/api/CardCommentServiceTest.java b/wrapper/src/test/java/wekan/wrapper/api/CardCommentServiceTest.java index 666b15b..54fd35a 100644 --- a/wrapper/src/test/java/wekan/wrapper/api/CardCommentServiceTest.java +++ b/wrapper/src/test/java/wekan/wrapper/api/CardCommentServiceTest.java @@ -7,9 +7,7 @@ import org.junit.Before; import org.junit.Test; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; -import wekan.wrapper.entity.Color; import wekan.wrapper.entity.Comment; -import wekan.wrapper.entity.Swimlane; import java.io.IOException; import java.net.HttpURLConnection; @@ -89,6 +87,27 @@ public class CardCommentServiceTest { } } + @Test + public void getComment() { + MockResponse response = new MockResponse() + .setResponseCode(HttpURLConnection.HTTP_OK) + .setBody(COMMENT_3); + + mockWebServer.enqueue(response); + + try { + Comment comment = service.getComment( + "board id", + "card id", + "comment id" + ).execute().body(); + + assertNotNull(comment); + } catch (IOException e) { + e.printStackTrace(); + } + } + private final static String COMMENT_1 = "{" + "\"_id\":\"zwzAgjHdW4fNJ9YLc\"," + "\"comment\":\"comment 1\"," + @@ -100,8 +119,12 @@ public class CardCommentServiceTest { "\"authorId\":\"Si69gNgkJfQuk6uiJ\"" + "}"; private final static String COMMENT_3 = "{" + - "\"_id\":\"zwzAgjHdW4fNJ9YLf\"," + - "\"comment\":\"comment 3\"," + - "\"authorId\":\"Si69gNgkJfQuk6uiJ\"" + + "\"_id\":\"DofhD9v96DbX7Wirp\"," + + "\"userId\":\"Si69gNgkJfQuk6uiJ\"," + + "\"text\":\"commento api\"," + + "\"cardId\":\"XQtnuqWEJnEcm6iy2\"," + + "\"boardId\":\"TtjXrJyvPkG3xsbkw\"," + + "\"createdAt\":\"2019-11-12T20:12:55.749Z\"," + + "\"modifiedAt\":\"2019-11-12T20:12:55.749Z\"" + "}"; }