mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Code refactoring and bug fixing for:
* RM-486 (RM Data Set Service) * RM-487 (REST API to retrieve details of available RM data sets) * RM-488 (REST API to import a RM data set into a file plan) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@41341 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -5,5 +5,5 @@
|
||||
<format default="json">argument</format>
|
||||
<authentication>admin</authentication>
|
||||
<transaction>required</transaction>
|
||||
<lifecycle>internal</lifecycle>
|
||||
<lifecycle>deprecated</lifecycle>
|
||||
</webscript>
|
@@ -1,5 +1,14 @@
|
||||
<#escape x as jsonUtils.encodeJSONString(x)>
|
||||
{
|
||||
"data": ${data}
|
||||
"data":
|
||||
{
|
||||
"datasets":
|
||||
[
|
||||
<#list datasets as item>
|
||||
{
|
||||
"label": "${item.label}",
|
||||
"id": "${item.id}"
|
||||
}<#if item_has_next>,</#if>
|
||||
</#list>
|
||||
]
|
||||
}
|
||||
}
|
||||
</#escape>
|
@@ -29,4 +29,12 @@ public interface DataSetService
|
||||
*/
|
||||
void loadDataSet(String dataSetId, NodeRef filePlan);
|
||||
|
||||
/**
|
||||
* Checks if a data set exists with the given data set id
|
||||
*
|
||||
* @param dataSetId the id of the data set which will be checked
|
||||
* @return true if the data set exists, false otherwise
|
||||
*/
|
||||
boolean existsDataSet(String dataSetId);
|
||||
|
||||
}
|
||||
|
@@ -29,6 +29,7 @@ import org.alfresco.service.cmr.security.AuthorityType;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.cmr.view.ImporterService;
|
||||
import org.alfresco.service.cmr.view.Location;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
@@ -187,6 +188,8 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
||||
@Override
|
||||
public void register(DataSet dataSet)
|
||||
{
|
||||
ParameterCheck.mandatory("dataSet", dataSet);
|
||||
|
||||
this.dataSets.put(dataSet.getId(), dataSet);
|
||||
}
|
||||
|
||||
@@ -206,6 +209,9 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
||||
@Override
|
||||
public void loadDataSet(String dataSetId, NodeRef filePlan)
|
||||
{
|
||||
ParameterCheck.mandatoryString("dataSetId", dataSetId);
|
||||
ParameterCheck.mandatory("filePlan", filePlan);
|
||||
|
||||
// Get the data set
|
||||
DataSet dataSet = getDataSets().get(dataSetId);
|
||||
|
||||
@@ -224,10 +230,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
||||
importerService.importView(viewReader, location, null, null);
|
||||
|
||||
// Patch data
|
||||
DataSetServiceImpl.patchLoadedData(searchService, nodeService, recordsManagementService,
|
||||
recordsManagementActionService, permissionService, authorityService,
|
||||
recordsManagementSecurityService, recordsManagementSearchBehaviour,
|
||||
dispositionService);
|
||||
patchLoadedData();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -238,13 +241,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
||||
* @param recordsManagementService
|
||||
* @param recordsManagementActionService
|
||||
*/
|
||||
private static void patchLoadedData(final SearchService searchService,
|
||||
final NodeService nodeService, final RecordsManagementService recordsManagementService,
|
||||
final RecordsManagementActionService recordsManagementActionService,
|
||||
final PermissionService permissionService, final AuthorityService authorityService,
|
||||
final RecordsManagementSecurityService recordsManagementSecurityService,
|
||||
final RecordsManagementSearchBehaviour recordManagementSearchBehaviour,
|
||||
final DispositionService dispositionService)
|
||||
private void patchLoadedData()
|
||||
{
|
||||
AuthenticationUtil.RunAsWork<Object> runAsWork = new AuthenticationUtil.RunAsWork<Object>()
|
||||
{
|
||||
@@ -349,7 +346,7 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
||||
|
||||
// fixup the search behaviour aspect for the record folder
|
||||
logger.info("Setting up search aspect for record folder: " + folderName);
|
||||
recordManagementSearchBehaviour.fixupSearchAspect(recordFolder);
|
||||
recordsManagementSearchBehaviour.fixupSearchAspect(recordFolder);
|
||||
}
|
||||
}
|
||||
finally
|
||||
@@ -365,4 +362,15 @@ public class DataSetServiceImpl implements DataSetService, RecordsManagementMode
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.dataset.DataSetService#existsDataSet(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public boolean existsDataSet(String dataSetId)
|
||||
{
|
||||
ParameterCheck.mandatoryString("dataSetId", dataSetId);
|
||||
|
||||
return getDataSets().containsKey(dataSetId);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -63,6 +63,11 @@ public class DataSetPost extends DeclarativeWebScript implements RecordsManageme
|
||||
{
|
||||
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A data set id was not provided.");
|
||||
}
|
||||
if (!dataSetService.existsDataSet(dataSetId))
|
||||
{
|
||||
throw new WebScriptException(Status.STATUS_NOT_FOUND, "A data set with the id '" + dataSetId + "'"
|
||||
+ " does not exist.");
|
||||
}
|
||||
|
||||
// Resolve RM site
|
||||
String siteName = req.getParameter(ARG_SITE_NAME);
|
||||
@@ -71,6 +76,7 @@ public class DataSetPost extends DeclarativeWebScript implements RecordsManageme
|
||||
siteName = RmSiteType.DEFAULT_SITE_NAME;
|
||||
}
|
||||
|
||||
// Check the site if it exists
|
||||
if (siteService.getSite(siteName) == null)
|
||||
{
|
||||
throw new WebScriptException(Status.STATUS_BAD_REQUEST, "A Records Management site with the name '"
|
||||
@@ -85,6 +91,7 @@ public class DataSetPost extends DeclarativeWebScript implements RecordsManageme
|
||||
TYPE_FILE_PLAN, null);
|
||||
}
|
||||
|
||||
// Load data set in to the file plan
|
||||
dataSetService.loadDataSet(dataSetId, filePlan);
|
||||
|
||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
||||
|
@@ -1,17 +1,15 @@
|
||||
package org.alfresco.module.org_alfresco_module_rm.script;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
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
|
||||
@@ -38,33 +36,23 @@ public class DataSetsGet extends DeclarativeWebScript
|
||||
@Override
|
||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
|
||||
{
|
||||
try
|
||||
Map<String, DataSet> dataSets = dataSetService.getDataSets();
|
||||
List<Map<String, String>> dataSetList = new ArrayList<Map<String, String>>(dataSets.size());
|
||||
|
||||
for (Map.Entry<String, DataSet> entry : dataSets.entrySet())
|
||||
{
|
||||
JSONObject data = new JSONObject();
|
||||
JSONArray dataSets = new JSONArray();
|
||||
Map<String, String> dataSet = new HashMap<String, String>(2);
|
||||
DataSet value = entry.getValue();
|
||||
|
||||
for (Map.Entry<String, DataSet> entry : dataSetService.getDataSets().entrySet())
|
||||
{
|
||||
DataSet value = entry.getValue();
|
||||
JSONObject dataSet = new JSONObject();
|
||||
dataSet.put("label", value.getLabel());
|
||||
dataSet.put("id", value.getId());
|
||||
|
||||
dataSet.put("label", value.getLabel());
|
||||
dataSet.put("id", value.getId());
|
||||
|
||||
dataSets.put(dataSet);
|
||||
}
|
||||
|
||||
data.put("datasets", dataSets);
|
||||
|
||||
Map<String, Object> model = new HashMap<String, Object>(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);
|
||||
dataSetList.add(dataSet);
|
||||
}
|
||||
|
||||
Map<String, Object> model = new HashMap<String, Object>(1);
|
||||
model.put("datasets", dataSetList);
|
||||
|
||||
return model;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user