import org.collectionspace.services.common.relation.nuxeo.RelationsUtils;
import org.collectionspace.services.relation.RelationsCommon;
import org.collectionspace.services.relation.RelationsCommonList;
+import org.collectionspace.services.relation.RelationsCommonList.RelationListItem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
+import javax.ws.rs.DELETE;
import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
@Path("/relations")
}
}
+ @DELETE
+ public Response delete(@Context UriInfo uriInfo) {
+ Response result = Response.status(200).build();
+
+ RelationsCommonList relationsList = this.getList(null, uriInfo);
+ for (RelationListItem relation : relationsList.getRelationListItem()) {
+ Response deleteResponse = this.delete(relation.getCsid());
+ }
+
+ return result;
+ }
}
StringBuilder stringBuilder = new StringBuilder();
- //
- // (subectCsid = ${csid} OR objectCsid = ${csid}) overrides the individual subject or object query params
- // (Example, ((rel.subjectcsid = subject AND rel.objectcsid = target)
- // OR
- // (rel.subjectcsid = target AND rel.objectcsid = subject))
- //
- if (subjectOrObject != null) {
+ if (subjectOrObject != null && object != null) {
+ // Used for GET requests like: cspace-services/collectionobjects?mkRtSbjOrObj=cf5db000-4e65-42d5-8117
+ //
+ // (Example, ((rel.subjectcsid = subject AND rel.objectcsid = target)
+ // OR
+ // (rel.subjectcsid = target AND rel.objectcsid = subject))
+ //
String target = object;
stringBuilder.append("(");
stringBuilder.append("(" + RelationConstants.NUXEO_SCHEMA_NAME + ":" +
stringBuilder.append(" AND " + RelationConstants.NUXEO_SCHEMA_NAME + ":" +
RelationJAXBSchema.OBJECT_CSID + " = " + "'" + subjectOrObject + "'" + ")");
stringBuilder.append(")");
-
+ } else if (subjectOrObject != null) {
+ // Used for GET requests like: cspace-services/relations?sbjOrObj=cf5db000-4e65-42d5-8117
+ //
+ // (subectCsid = ${csid} OR objectCsid = ${csid}) overrides the individual subject or object query params
+ // (Example, (rel.subjectcsid = subjectOrObject OR rel.objectcsid = subjectOrObject)
+ //
+ stringBuilder.append("(" + RelationConstants.NUXEO_SCHEMA_NAME + ":" +
+ RelationJAXBSchema.SUBJECT_CSID + " = " + "'" + subjectOrObject + "'");
+ stringBuilder.append(" OR ");
+ stringBuilder.append(RelationConstants.NUXEO_SCHEMA_NAME + ":" +
+ RelationJAXBSchema.OBJECT_CSID + " = " + "'" + subjectOrObject + "')");
} else {
+ // Used for GET requests like: cspace-services/relations?sbj=cf5db000-4e65-42d5-8117
+ // and cspace-services/relations?obj=cf5db000-4e65-42d5-8117
+ //
if (subject != null) {
if (stringBuilder.length() > 0) {
stringBuilder.append(IQueryManager.SEARCH_QUALIFIER_AND);