diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml index d9b8e146f3..b6dc650014 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml @@ -376,4 +376,9 @@ + + + + + \ No newline at end of file diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.desc.xml new file mode 100644 index 0000000000..db0195a056 --- /dev/null +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.desc.xml @@ -0,0 +1,9 @@ + + Get data sets + WebScript to get the list of available RM test data + /api/rma/datasets + argument + admin + required + internal + \ No newline at end of file diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.json.ftl new file mode 100644 index 0000000000..509bdd5470 --- /dev/null +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/rma/datasets.get.json.ftl @@ -0,0 +1,5 @@ +<#escape x as jsonUtils.encodeJSONString(x)> +{ + "data": ${data} +} + \ No newline at end of file diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java new file mode 100644 index 0000000000..8db37f2391 --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/DataSetsGet.java @@ -0,0 +1,70 @@ +package org.alfresco.module.org_alfresco_module_rm.script; + +import java.util.HashMap; +import java.util.Map; + +import org.alfresco.module.org_alfresco_module_rm.dataset.DataSet; +import org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.extensions.webscripts.Cache; +import org.springframework.extensions.webscripts.DeclarativeWebScript; +import org.springframework.extensions.webscripts.Status; +import org.springframework.extensions.webscripts.WebScriptException; +import org.springframework.extensions.webscripts.WebScriptRequest; + +public class DataSetsGet extends DeclarativeWebScript +{ + + /** Data set service */ + private DataSetService dataSetService; + + /** + * Set data set service + * + * @param dataSetService the data set service + */ + public void setDataSetService(DataSetService dataSetService) + { + this.dataSetService = dataSetService; + } + + /** + * @see org.springframework.extensions.webscripts.DeclarativeWebScript#executeImpl(org.springframework.extensions.webscripts.WebScriptRequest, + * org.springframework.extensions.webscripts.Status, + * org.springframework.extensions.webscripts.Cache) + */ + @Override + protected Map executeImpl(WebScriptRequest req, Status status, Cache cache) + { + try + { + JSONObject data = new JSONObject(); + JSONArray dataSets = new JSONArray(); + + for (Map.Entry entry : dataSetService.getDataSets().entrySet()) + { + DataSet value = entry.getValue(); + JSONObject dataSet = new JSONObject(); + + dataSet.put("label", value.getLabel()); + dataSet.put("id", value.getId()); + + dataSets.put(dataSet); + } + + data.put("datasets", dataSets); + + Map model = new HashMap(1, 1.0f); + model.put("data", data.toString()); + + return model; + } + catch (JSONException error) + { + throw new WebScriptException(Status.STATUS_BAD_REQUEST, + "Cannot convert data set details into JSON.", error); + } + } +}