From 28fe7c8b02c5f71f2cd304ca64ff98892dcb5e31 Mon Sep 17 00:00:00 2001 From: jendib Date: Wed, 7 Aug 2013 11:42:57 +0200 Subject: [PATCH] Return tags on GET /document/list --- docs-parent/TODO | 2 +- .../docs/rest/resource/DocumentResource.java | 13 +++++++++++++ .../com/sismics/docs/rest/TestDocumentResource.java | 6 +++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/docs-parent/TODO b/docs-parent/TODO index 9e3a7a05..87e14c19 100644 --- a/docs-parent/TODO +++ b/docs-parent/TODO @@ -1,3 +1,3 @@ - Users administration (client) - Tag color (client/server) -- Display tags on documents list (client/server) \ No newline at end of file +- Display tags on documents list (client) \ No newline at end of file diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java index 4609676d..221f02cb 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java @@ -122,6 +122,7 @@ public class DocumentResource extends BaseResource { List documents = new ArrayList(); DocumentDao documentDao = new DocumentDao(); + TagDao tagDao = new TagDao(); PaginatedList paginatedList = PaginatedLists.create(limit, offset); SortCriteria sortCriteria = new SortCriteria(sortColumn, asc); DocumentCriteria documentCriteria = new DocumentCriteria(); @@ -140,6 +141,18 @@ public class DocumentResource extends BaseResource { document.put("title", documentDto.getTitle()); document.put("description", documentDto.getDescription()); document.put("create_date", documentDto.getCreateTimestamp()); + + // Get tags + List tagDtoList = tagDao.getByDocumentId(documentDto.getId()); + List tags = new ArrayList(); + for (TagDto tagDto : tagDtoList) { + JSONObject tag = new JSONObject(); + tag.put("id", tagDto.getId()); + tag.put("name", tagDto.getName()); + tags.add(tag); + } + document.put("tags", tags); + documents.add(document); } response.put("total", paginatedList.getResultCount()); diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java index 14977583..98fbd533 100644 --- a/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java +++ b/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java @@ -69,8 +69,12 @@ public class TestDocumentResource extends BaseJerseyTest { json = response.getEntity(JSONObject.class); Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus())); JSONArray documents = json.getJSONArray("documents"); + JSONArray tags = documents.getJSONObject(0).getJSONArray("tags"); Assert.assertTrue(documents.length() == 1); Assert.assertEquals(document1Id, documents.getJSONObject(0).getString("id")); + Assert.assertEquals(1, tags.length()); + Assert.assertEquals(tag1Id, tags.getJSONObject(0).getString("id")); + Assert.assertEquals("Super tag", tags.getJSONObject(0).getString("name")); // Search documents by query documentResource = resource().path("/document/list"); @@ -128,7 +132,7 @@ public class TestDocumentResource extends BaseJerseyTest { json = response.getEntity(JSONObject.class); Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus())); Assert.assertEquals(document1Id, json.getString("id")); - JSONArray tags = json.getJSONArray("tags"); + tags = json.getJSONArray("tags"); Assert.assertEquals(1, tags.length()); Assert.assertEquals(tag1Id, tags.getJSONObject(0).getString("id"));