From b8e8c8a8e2155f927534aeeb6c09e5e9c863089c Mon Sep 17 00:00:00 2001 From: Juan Manuel Rubiales de la Cruz <91719773+jumarub@users.noreply.github.com> Date: Fri, 17 Jan 2025 18:42:15 +0100 Subject: [PATCH] SAK-50756 Tags new endpoint to get tags by id (#13107) Co-authored-by: bgarciaentornos --- .../impl/rest/TagServiceEntityProvider.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tags/tags-impl/impl/src/java/org/sakaiproject/tags/impl/rest/TagServiceEntityProvider.java b/tags/tags-impl/impl/src/java/org/sakaiproject/tags/impl/rest/TagServiceEntityProvider.java index 1a678f80dbdc..357054326900 100644 --- a/tags/tags-impl/impl/src/java/org/sakaiproject/tags/impl/rest/TagServiceEntityProvider.java +++ b/tags/tags-impl/impl/src/java/org/sakaiproject/tags/impl/rest/TagServiceEntityProvider.java @@ -215,6 +215,39 @@ public JSONObject getTagsPaginatedByPrefixInLabel(EntityView view, Map params) { + WrappedParams wp = new WrappedParams(params); + String itemId = wp.getString("itemId"); + String siteId = wp.getString("siteId"); + + try { + List tagList = tagService().getAssociatedTagsForItem(siteId, itemId); + return buildtagJsonOject(tagList, tagList.size()); + } catch (Exception e) { + log.error("Could not get tag with itemId={} in site={}, {}", itemId, siteId, e); + return null; + } + } + + private JSONObject buildtagJsonOject(List tagList, int tagCount) { + JSONObject responseDetailsJson = new JSONObject(); + JSONArray jsonArray = new JSONArray(); + + for (Tag p : tagList) { + JSONObject formDetailsJson = new JSONObject(); + formDetailsJson.put("tagId", p.getTagId()); + formDetailsJson.put("tagLabel", p.getTagLabel()); + formDetailsJson.put("collectionName", p.getCollectionName()); + formDetailsJson.put("tagCollectionId", p.getTagCollectionId()); + jsonArray.add(formDetailsJson); + } + responseDetailsJson.put("total",tagCount ); + responseDetailsJson.put("tags", jsonArray); + + return responseDetailsJson; + } + private TagService tagService() {