\r
!-- ========================= POST a person ===================================================== -->\r
\r
- <testGroup ID="postPerson" autoDeletePOSTS="false">\r
+ <testGroup ID="postPerson" autoDeletePOSTS="true">\r
<test ID="PersonAuth1" auth="admin@collectionspace.org">\r
<method>POST</method>\r
<uri>/cspace-services/personauthorities/</uri>\r
*/
public class AccountClient extends AbstractServiceClientImpl<AccountsCommonList, AccountProxy> {
public static final String SERVICE_NAME = "accounts";
+ public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;
+ public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;
@Override
public String getServiceName() {
<artifactId>org.collectionspace.services.account.jaxb</artifactId>\r
<version>${project.version}</version>\r
</dependency>\r
- \r
+ <dependency>\r
+ <groupId>org.collectionspace.services</groupId>\r
+ <artifactId>org.collectionspace.services.account.client</artifactId>\r
+ <version>${project.version}</version>\r
+ </dependency>\r
+\r
<!-- External dependencies -->\r
\r
<dependency>\r
*/
package org.collectionspace.services.account;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
-import org.collectionspace.services.authorization.AccountRoleRel;
-import org.collectionspace.services.authorization.AccountPermission;
-//import org.collectionspace.services.authorization.AccountRolesList;
import org.collectionspace.services.account.storage.AccountStorageClient;
+import org.collectionspace.services.authorization.AccountPermission;
import org.collectionspace.services.authorization.AccountRole;
+import org.collectionspace.services.authorization.AccountRoleRel;
import org.collectionspace.services.authorization.SubjectType;
-import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
+import org.collectionspace.services.client.AccountClient;
+import org.collectionspace.services.common.SecurityResourceBase;
import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.RemoteServiceContextFactory;
import org.collectionspace.services.common.context.ServiceContext;
import org.collectionspace.services.common.context.ServiceContextFactory;
-import org.collectionspace.services.common.context.RemoteServiceContextFactory;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.security.UnauthorizedException;
import org.collectionspace.services.common.storage.StorageClient;
import org.collectionspace.services.common.storage.jpa.JpaStorageUtils;
import org.jboss.resteasy.util.HttpResponseCodes;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * AccountResource provides RESTful interface to the account service
- */
-@Path("/accounts")
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
+import javax.ws.rs.core.UriInfo;
+
+
+/** AccountResource provides RESTful interface to the account service */
+@Path(AccountClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class AccountResource
- extends AbstractCollectionSpaceResourceImpl<AccountsCommon, AccountsCommon> {
+public class AccountResource extends SecurityResourceBase {
- /** The service name. */
- final private String serviceName = "accounts";
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(AccountResource.class);
- /** The storage client. */
final StorageClient storageClient = new AccountStorageClient();
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
- final String lastChangeRevision = "$LastChangedRevision: 1165 $";
- return lastChangeRevision;
+ return "$LastChangedRevision: 1165 $";
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
- return serviceName;
+ return AccountClient.SERVICE_NAME;
}
@Override
return AccountsCommon.class;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getServiceContextFactory()
- */
@Override
public ServiceContextFactory<AccountsCommon, AccountsCommon> getServiceContextFactory() {
return (ServiceContextFactory<AccountsCommon, AccountsCommon>) RemoteServiceContextFactory.get();
}
-// private <T> ServiceContext createServiceContext(T obj) throws Exception {
-// ServiceContext ctx = new RemoteServiceContextImpl<T, T>(getServiceName());
-// ctx.setInput(obj);
-// ctx.setDocumentType(AccountsCommon.class.getPackage().getName()); //persistence unit
-// ctx.setProperty("entity-name", AccountsCommon.class.getName());
-// return ctx;
-// }
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getStorageClient(org.collectionspace.services.common.context.ServiceContext)
- */
@Override
- public StorageClient getStorageClient(ServiceContext<AccountsCommon, AccountsCommon> ctx) {
+ public StorageClient getStorageClient(ServiceContext ctx) {
//FIXME use ctx to identify storage client
return storageClient;
}
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// docHandler.setCommonPart(ctx.getInput());
-// return docHandler;
-// }
- /**
- * Creates the account.
- *
- * @param input the input
- *
- * @return the response
- */
@POST
public Response createAccount(AccountsCommon input) {
- try {
- ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext(input, AccountsCommon.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getStorageClient(ctx).create(ctx, handler);
- UriBuilder path = UriBuilder.fromResource(AccountResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createAccount", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.POST_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
+ return create(input);
}
- /**
- * Gets the account.
- *
- * @param csid the csid
- *
- * @return the account
- */
@GET
@Path("{csid}")
- public AccountsCommon getAccount(
- @PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("getAccount with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getAccount: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + ServiceMessages.MISSING_INVALID_CSID + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- AccountsCommon result = null;
- try {
- ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext((AccountsCommon) null, AccountsCommon.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- getStorageClient(ctx).get(ctx, csid, handler);
- result = (AccountsCommon) ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccount", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccount", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.GET_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result;
+ public AccountsCommon getAccount(@PathParam("csid") String csid) {
+ return (AccountsCommon)get(csid, AccountsCommon.class);
}
- /**
- * Gets the account list.
- *
- * @param ui the ui
- *
- * @return the account list
- */
@GET
@Produces("application/xml")
- public AccountsCommonList getAccountList(
- @Context UriInfo ui) {
- AccountsCommonList accountList = new AccountsCommonList();
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext((AccountsCommon) null,
- queryParams, AccountsCommon.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- handler.getDocumentFilter().setQueryParams(queryParams);
-// DocumentFilter myFilter = handler.createDocumentFilter();
-// myFilter.setPagination(queryParams);
-// myFilter.setQueryParams(queryParams);
-// handler.setDocumentFilter(myFilter);
- getStorageClient(ctx).getFiltered(ctx, handler);
- accountList = (AccountsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.LIST_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
-
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getAccountList", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.LIST_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return accountList;
+ public AccountsCommonList getAccountList(@Context UriInfo ui) {
+ return (AccountsCommonList)getList(ui, AccountsCommon.class);
}
- /**
- * Update account.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the accounts common
- */
@PUT
@Path("{csid}")
- public AccountsCommon updateAccount(
- @PathParam("csid") String csid,
- AccountsCommon theUpdate) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateAccount with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateAccount: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.PUT_FAILED + ServiceMessages.MISSING_INVALID_CSID + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- AccountsCommon result = null;
- try {
- ServiceContext<AccountsCommon, AccountsCommon> ctx = createServiceContext(theUpdate, AccountsCommon.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- getStorageClient(ctx).update(ctx, csid, handler);
- result = (AccountsCommon) ctx.getOutput();
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.PUT_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.PUT_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caugth exception in updateAccount", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.PUT_FAILED + "csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.PUT_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result;
+ public AccountsCommon updateAccount(@PathParam("csid") String csid,AccountsCommon theUpdate) {
+ return (AccountsCommon)update(csid, theUpdate, AccountsCommon.class);
}
- /**
- * Delete account.
- *
- * @param csid the csid
- *
- * @return the response
- */
+
@DELETE
@Path("{csid}")
public Response deleteAccount(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteAccount with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteAccount: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + ServiceMessages.MISSING_INVALID_CSID + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("deleteAccount with csid=" + csid);
+ ensureCSID(csid, ServiceMessages.DELETE_FAILED);
try {
//FIXME ideally the following two ops shoudl be in the same tx CSPACE-658
//delete all relationships
AccountsCommon.class);
getStorageClient(ctx).delete(ctx, csid);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
-
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteAccount", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.DELETE_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, csid);
}
}
return deleteAccountRole(accCsid, input);
}
}
- if (logger.isDebugEnabled()) {
- logger.debug("createAccountRole with accCsid=" + accCsid);
- }
- if (accCsid == null || "".equals(accCsid)) {
- logger.error("createAccountRole: missing accCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.POST_FAILED + "accountroles account "
- + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("createAccountRole with accCsid=" + accCsid);
+ ensureCSID(accCsid, ServiceMessages.POST_FAILED+ "accountroles account ");
try {
AccountRoleSubResource subResource =
new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
path.path(accCsid + "/accountroles/" + accrolecsid);
Response response = Response.created(path.build()).build();
return response;
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createAccountRole", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.POST_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ } catch (Exception e) {
+ throw bigReThrow(e, ServiceMessages.POST_FAILED, accCsid);
}
}
public AccountRoleRel getAccountRole(
@PathParam("csid") String accCsid,
@PathParam("id") String accrolecsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountRole with accCsid=" + accCsid);
- }
- if (accCsid == null || "".equals(accCsid)) {
- logger.error("getAccountRole: missing accCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "accountroles account "
- + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("getAccountRole with accCsid=" + accCsid);
+ ensureCSID(accCsid, ServiceMessages.GET_FAILED+ "accountroles account ");
AccountRoleRel result = null;
try {
AccountRoleSubResource subResource =
new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
//get relationships for an account
result = subResource.getAccountRoleRel(accCsid, SubjectType.ROLE, accrolecsid);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "account csid=" + accrolecsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountRole", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "account csid=" + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
+ } catch (Exception e) {
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, accCsid);
}
+ checkResult(result, accCsid, ServiceMessages.GET_FAILED);
return result;
}
@Path("{csid}/accountroles")
public AccountRole getAccountRole(
@PathParam("csid") String accCsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountRole with accCsid=" + accCsid);
- }
- if (accCsid == null || "".equals(accCsid)) {
- logger.error("getAccountRole: missing accCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "accountroles account "
- + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("getAccountRole with accCsid=" + accCsid);
+ ensureCSID(accCsid, ServiceMessages.GET_FAILED+ "accountroles account ");
AccountRole result = null;
try {
AccountRoleSubResource subResource =
new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
//get relationships for an account
result = subResource.getAccountRole(accCsid, SubjectType.ROLE);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "account csid=" + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountRole", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "account csid=" + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, accCsid);
}
+ checkResult(result, accCsid, ServiceMessages.GET_FAILED);
return result;
}
@GET
@Path("{csid}/accountperms")
- public AccountPermission getAccountPerm(
- @PathParam("csid") String accCsid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountPerm with accCsid=" + accCsid);
- }
- if (accCsid == null || "".equals(accCsid)) {
- logger.error("getAccountPerm: missing accCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "getAccountPerm account "
- + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
-
+ public AccountPermission getAccountPerm(@PathParam("csid") String accCsid) {
+ logger.debug("getAccountPerm with accCsid=" + accCsid);
+ ensureCSID(accCsid, ServiceMessages.GET_FAILED+ "getAccountPerm account ");
AccountPermission result = null;
String userId = "undefined";
try {
result = JpaStorageUtils.getAccountPermissions(accCsid);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED +
- ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountPerm", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(ServiceMessages.GET_FAILED +
- "account userId=" + userId).type("text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getAccountPerm", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "account userId=" + userId).type(
- "text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, accCsid);
}
+ checkResult(result, accCsid, ServiceMessages.GET_FAILED);
return result;
}
- /**
- * Delete account role.
- *
- * @param accCsid the acc csid
- * @param input the input
- * @return the response
- */
public Response deleteAccountRole(String accCsid, AccountRole input) {
- if (logger.isDebugEnabled()) {
- logger.debug("deleteAccountRole with accCsid=" + accCsid);
- }
- if (accCsid == null || "".equals(accCsid)) {
- logger.error("deleteAccountRole: missing accCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "accountroles account "
- + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("deleteAccountRole with accCsid=" + accCsid);
+ ensureCSID(accCsid, ServiceMessages.DELETE_FAILED+ "accountroles account ");
try {
AccountRoleSubResource subResource =
new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
//delete all relationships for an account
subResource.deleteAccountRole(accCsid, SubjectType.ROLE, input);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteAccountRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "account csid=" + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, accCsid);
}
}
@DELETE
@Path("{csid}/accountroles")
- public Response deleteAccountRole(
- @PathParam("csid") String accCsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("deleteAccountRole: All roles related to account with accCsid=" + accCsid);
- }
- if (accCsid == null || "".equals(accCsid)) {
- logger.error("deleteAccountRole: missing accCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "accountroles account "
- + ServiceMessages.MISSING_INVALID_CSID + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ public Response deleteAccountRole(@PathParam("csid") String accCsid) {
+ logger.debug("deleteAccountRole: All roles related to account with accCsid=" + accCsid);
+ ensureCSID(accCsid, ServiceMessages.DELETE_FAILED+ "accountroles account ");
try {
AccountRoleSubResource subResource =
new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE);
//delete all relationships for an account
subResource.deleteAccountRole(accCsid, SubjectType.ROLE);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteAccountRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "account csid=" + accCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, accCsid);
}
}
return SERVICE_PATH_COMPONENT;
}
- /**
- * @return
- * @see org.collectionspace.hello.client.RoleProxy#readList()
- */
public ClientResponse<RolesList> readList() {
return getProxy().readList();
}
- /**
- * @param csid
- * @return
- * @see org.collectionspace.hello.client.RoleProxy#getAccount(java.lang.String)
- */
public ClientResponse<Role> read(String csid) {
return getProxy().read(csid);
}
* @param csid
* @param role
* @return
- * @see org.collectionspace.hello.client.RoleProxy#updateAccount(java.lang.Long, org.collectionspace.services.role.Role)
*/
public ClientResponse<Role> update(String csid, Role role) {
return getProxy().update(csid, role);
</properties>\r
\r
<dependencies>\r
+ <dependency>\r
+ <groupId>org.collectionspace.services</groupId>\r
+ <artifactId>org.collectionspace.services.authorization-mgt.client</artifactId>\r
+ <version>${project.version}</version>\r
+ <scope>provided</scope>\r
+ </dependency>\r
\r
<!-- utilities -->\r
\r
*/
package org.collectionspace.services.authorization;
+import org.collectionspace.services.authorization.storage.AuthorizationDelegate;
+import org.collectionspace.services.client.PermissionClient;
+import org.collectionspace.services.common.SecurityResourceBase;
+import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.RemoteServiceContextFactory;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.context.ServiceContextFactory;
+import org.collectionspace.services.common.storage.StorageClient;
+import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
+import org.jboss.resteasy.util.HttpResponseCodes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-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.UriBuilder;
import javax.ws.rs.core.UriInfo;
-import org.collectionspace.services.authorization.storage.PermissionRoleDocumentHandler;
-import org.collectionspace.services.authorization.storage.AuthorizationDelegate;
-
-import org.collectionspace.services.common.storage.StorageClient;
-import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
-import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.context.RemoteServiceContextFactory;
-import org.collectionspace.services.common.context.ServiceContextFactory;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.security.UnauthorizedException;
-
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class PermissionResource.
- */
-@Path("/authorization/permissions")
+@Path(PermissionClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class PermissionResource
- extends AbstractCollectionSpaceResourceImpl<Permission, Permission> {
+public class PermissionResource extends SecurityResourceBase {
- /** The service name. */
- final private String serviceName = "authorization/permissions";
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(PermissionResource.class);
- /** The storage client. */
final StorageClient storageClient = new JpaStorageClientImpl();
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
- final String lastChangeRevision = "$LastChangedRevision: 1165 $";
- return lastChangeRevision;
+ return "$LastChangedRevision: 1165 $";
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
- return serviceName;
+ return PermissionClient.SERVICE_NAME;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<Permission> getCommonPartClass() {
return Permission.class;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getServiceContextFactory()
- */
@Override
public ServiceContextFactory<Permission, Permission> getServiceContextFactory() {
return RemoteServiceContextFactory.get();
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getStorageClient(org.collectionspace.services.common.context.ServiceContext)
- */
@Override
public StorageClient getStorageClient(ServiceContext ctx) {
//FIXME use ctx to identify storage client
return storageClient;
}
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// docHandler.setCommonPart(ctx.getInput());
-// return docHandler;
-// }
- /**
- * Creates the permission.
- *
- * @param input the input
- *
- * @return the response
- */
@POST
public Response createPermission(Permission input) {
- try {
- ServiceContext<Permission, Permission> ctx = createServiceContext(input, Permission.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getStorageClient(ctx).create(ctx, handler);
- UriBuilder path = UriBuilder.fromResource(PermissionResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createPermission", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.POST_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
+ return create(input);
}
- /**
- * Gets the permission.
- *
- * @param csid the csid
- *
- * @return the permission
- */
@GET
@Path("{csid}")
- public Permission getPermission(
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermission with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getPermission: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "permission "
- + ServiceMessages.MISSING_INVALID_CSID + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- Permission result = null;
- try {
- ServiceContext<Permission, Permission> ctx = createServiceContext((Permission) null, Permission.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- getStorageClient(ctx).get(ctx, csid, handler);
- result = (Permission) ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermission", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permission csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermission", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + " permission csid=" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result;
+ public Permission getPermission(@PathParam("csid") String csid) {
+ return (Permission)get(csid, Permission.class);
}
- /**
- * Gets the permission list.
- *
- * @param ui the ui
- *
- * @return the permission list
- */
@GET
@Produces("application/xml")
- public PermissionsList getPermissionList(
- @Context UriInfo ui) {
- PermissionsList permissionList = new PermissionsList();
- try {
- ServiceContext<Permission, Permission> ctx = createServiceContext((Permission) null, Permission.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- DocumentFilter myFilter = handler.createDocumentFilter();
- myFilter.setPagination(queryParams);
- myFilter.setQueryParams(queryParams);
- handler.setDocumentFilter(myFilter);
- getStorageClient(ctx).getFiltered(ctx, handler);
- permissionList = (PermissionsList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.LIST_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
-
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getPermissionsList", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.LIST_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return permissionList;
+ public PermissionsList getPermissionList(@Context UriInfo ui) {
+ return (PermissionsList)getList(ui, Permission.class);
}
- /**
- * Update permission.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the permission
- */
@PUT
@Path("{csid}")
- public Permission updatePermission(
- @PathParam("csid") String csid,
- Permission theUpdate) {
- if (logger.isDebugEnabled()) {
- logger.debug("updatePermission with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updatePermission: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.PUT_FAILED + "permission "
- + ServiceMessages.MISSING_INVALID_CSID + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- Permission result = null;
- try {
- ServiceContext<Permission, Permission> ctx = createServiceContext(theUpdate, Permission.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- getStorageClient(ctx).update(ctx, csid, handler);
- result = (Permission) ctx.getOutput();
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.PUT_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.PUT_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caugth exception in updatePermission", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.PUT_FAILED + "permission csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.PUT_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result;
+ public Permission updatePermission(@PathParam("csid") String csid,Permission theUpdate) {
+ return (Permission)update(csid, theUpdate, Permission.class);
}
- /**
- * Delete permission.
- *
- * @param csid the csid
- *
- * @return the response
- */
@DELETE
@Path("{csid}")
public Response deletePermission(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deletePermission with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deletePermission: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "permission "
- + ServiceMessages.MISSING_INVALID_CSID + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("deletePermission with csid=" + csid);
+ ensureCSID(csid, ServiceMessages.DELETE_FAILED + "permission ");
try {
//FIXME ideally the following two ops should be in the same tx CSPACE-658
//delete all relationships for this permission
ServiceContext<Permission, Permission> ctx = createServiceContext((Permission) null, Permission.class);
getStorageClient(ctx).delete(ctx, csid);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
-
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deletePermission", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "permission csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, csid);
}
-
}
@POST
return deletePermissionRole(permCsid, input);
}
}
- if (logger.isDebugEnabled()) {
- logger.debug("createPermissionRole with permCsid=" + permCsid);
- }
- if (permCsid == null || "".equals(permCsid)) {
- logger.error("createPermissionRole: missing permCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.POST_FAILED + "permroles permission "
- + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("createPermissionRole with permCsid=" + permCsid);
+ ensureCSID(permCsid, ServiceMessages.POST_FAILED + "permroles permission ");
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
path.path(permCsid + "/permroles/" + permrolecsid);
Response response = Response.created(path.build()).build();
return response;
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity("Create failed reason "
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Create failed reason "
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createPermissionRole", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.POST_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.POST_FAILED, permCsid);
}
}
public PermissionRoleRel getPermissionRole(
@PathParam("csid") String permCsid,
@PathParam("id") String permrolecsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermissionRole with permCsid=" + permCsid);
- }
- if (permCsid == null || "".equals(permCsid)) {
- logger.error("getPermissionRole: missing permCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "permroles permission "
- + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("getPermissionRole with permCsid=" + permCsid);
+ ensureCSID(permCsid, ServiceMessages.GET_FAILED + "permroles permission ");
PermissionRoleRel result = null;
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
//get relationships for a permission
result = subResource.getPermissionRoleRel(permCsid, SubjectType.ROLE, permrolecsid);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermissionRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles permission csid=" + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermissionRole", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles permisison csid=" + permCsid
- + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, permCsid);
}
+ checkResult(result, permCsid, ServiceMessages.GET_FAILED);
return result;
}
@Path("{csid}/permroles")
public PermissionRole getPermissionRole(
@PathParam("csid") String permCsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermissionRole with permCsid=" + permCsid);
- }
- if (permCsid == null || "".equals(permCsid)) {
- logger.error("getPermissionRole: missing permCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "permroles permission "
- + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("getPermissionRole with permCsid=" + permCsid);
+ ensureCSID(permCsid, ServiceMessages.GET_FAILED + "permroles permission ");
PermissionRole result = null;
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
//get relationships for a permission
result = subResource.getPermissionRole(permCsid, SubjectType.ROLE);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermissionRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles permission csid=" + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getPermissionRole", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles permisison csid=" + permCsid
- + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, permCsid);
}
+ checkResult(result, permCsid, ServiceMessages.GET_FAILED);
return result;
}
- /**
- * Delete permission role.
- *
- * @param permCsid the perm csid
- * @param input the input
- * @return the response
- */
public Response deletePermissionRole(String permCsid, PermissionRole input) {
- if (logger.isDebugEnabled()) {
- logger.debug("Delete payload of permrole relationships with permission permCsid=" + permCsid);
- }
- if (permCsid == null || "".equals(permCsid)) {
- logger.error("deletePermissionRole: missing permCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "permroles permission "
- + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("Delete payload of permrole relationships with permission permCsid=" + permCsid);
+ ensureCSID(permCsid, ServiceMessages.DELETE_FAILED + "permroles permission ");
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
//delete all relationships for a permission
subResource.deletePermissionRole(permCsid, SubjectType.ROLE, input);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deletePermissionRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "permisison csid=" + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, permCsid);
}
-
}
- /**
- * Delete permission role.
- *
- * @param permCsid the perm csid
- * @return the response
- */
@DELETE
@Path("{csid}/permroles")
public Response deletePermissionRole(
@PathParam("csid") String permCsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("Delete all the role relationships of the permissions with permCsid=" + permCsid);
- }
- if (permCsid == null || "".equals(permCsid)) {
- logger.error("deletePermissionRole: missing permCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "permroles permission "
- + ServiceMessages.MISSING_INVALID_CSID + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("Delete all the role relationships of the permissions with permCsid=" + permCsid);
+ ensureCSID(permCsid, ServiceMessages.DELETE_FAILED + "permroles permission ");
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE);
//delete all relationships for a permission
subResource.deletePermissionRole(permCsid, SubjectType.ROLE);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deletePermissionRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "permisison csid=" + permCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, permCsid);
}
}
*/
package org.collectionspace.services.authorization;
+import org.collectionspace.services.account.AccountRoleSubResource;
+import org.collectionspace.services.client.RoleClient;
+import org.collectionspace.services.common.SecurityResourceBase;
+import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.RemoteServiceContextFactory;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.context.ServiceContextFactory;
+import org.collectionspace.services.common.storage.StorageClient;
+import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
+import org.jboss.resteasy.util.HttpResponseCodes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-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.UriBuilder;
import javax.ws.rs.core.UriInfo;
-import org.collectionspace.services.account.AccountRoleSubResource;
-import org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl;
-//import org.collectionspace.services.common.context.RemoteServiceContextImpl;
-import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.context.ServiceContextFactory;
-import org.collectionspace.services.common.context.RemoteServiceContextFactory;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.common.storage.StorageClient;
-import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class RoleResource.
- */
-@Path("/authorization/roles") //FIXME: REM - Replace string constant with RoleClient.SERVICE_PATH
+@Path(RoleClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class RoleResource
- extends AbstractCollectionSpaceResourceImpl {
+public class RoleResource extends SecurityResourceBase {
- /** The service name. */
- final private String serviceName = "authorization/roles";
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(RoleResource.class);
- /** The storage client. */
final StorageClient storageClient = new JpaStorageClientImpl();
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
- final String lastChangeRevision = "$LastChangedRevision: 1165 $";
- return lastChangeRevision;
+ return "$LastChangedRevision: 1165 $";
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
- return serviceName;
+ return RoleClient.SERVICE_NAME;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<RoleResource> getCommonPartClass() {
return RoleResource.class;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getServiceContextFactory()
- */
@Override
public ServiceContextFactory getServiceContextFactory() {
return RemoteServiceContextFactory.get();
}
-// private <T> ServiceContext createServiceContext(T obj) throws Exception {
-// ServiceContext ctx = new RemoteServiceContextImpl<T, T>(getServiceName());
-// ctx.setInput(obj);
-// ctx.setDocumentType(Role.class.getPackage().getName()); //persistence unit
-// ctx.setProperty("entity-name", Role.class.getName());
-// return ctx;
-// }
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getStorageClient(org.collectionspace.services.common.context.ServiceContext)
- */
@Override
public StorageClient getStorageClient(ServiceContext ctx) {
//FIXME use ctx to identify storage client
return storageClient;
}
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// docHandler.setCommonPart(ctx.getInput());
-// return docHandler;
-// }
- /**
- * Creates the role.
- *
- * @param input the input
- *
- * @return the response
- */
@POST
public Response createRole(Role input) {
- Response response = null;
-
- try {
- ServiceContext ctx = createServiceContext(input, Role.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getStorageClient(ctx).create(ctx, handler);
- UriBuilder path = UriBuilder.fromResource(RoleResource.class);
- path.path("" + csid);
- response = Response.created(path.build()).build();
- } catch (BadRequestException bre) {
- response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentException bre) {
- response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught a general exception in RoleResource:createRole post: ", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.POST_FAILED
- + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(e, response);
- }
-
- return response;
+ return create(input);
}
- /**
- * Gets the role.
- *
- * @param csid the csid
- *
- * @return the role
- */
@GET
@Path("{csid}")
- public Role getRole(
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRole with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getRole: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "role csid=").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- Role result = null;
- try {
- ServiceContext ctx = createServiceContext((Role) null, Role.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- getStorageClient(ctx).get(ctx, csid, handler);
- result = (Role) ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "role csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRole", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.GET_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "role csid=" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result;
+ public Role getRole(@PathParam("csid") String csid) {
+ return (Role)get(csid, Role.class);
}
- /**
- * Gets the role list.
- *
- * @param ui the ui
- *
- * @return the role list
- */
@GET
@Produces("application/xml")
- public RolesList getRoleList(
- @Context UriInfo ui) {
- RolesList roleList = new RolesList();
- try {
- ServiceContext ctx = createServiceContext((Role) null, Role.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- DocumentFilter myFilter = handler.createDocumentFilter();
- myFilter.setPagination(queryParams);
- myFilter.setQueryParams(queryParams);
- handler.setDocumentFilter(myFilter);
- getStorageClient(ctx).getFiltered(ctx, handler);
- roleList = (RolesList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.LIST_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
-
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getRoleList", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(ServiceMessages.LIST_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return roleList;
+ public RolesList getRoleList(@Context UriInfo ui) {
+ return (RolesList)getList(ui, Role.class);
}
- /**
- * Update role.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the role
- */
@PUT
@Path("{csid}")
- public Role updateRole(
- @PathParam("csid") String csid,
- Role theUpdate) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateRole with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateRole: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.PUT_FAILED + "role "
- + ServiceMessages.MISSING_INVALID_CSID + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- Role result = null;
- try {
- ServiceContext ctx = createServiceContext(theUpdate, Role.class);
- DocumentHandler handler = createDocumentHandler(ctx);
- getStorageClient(ctx).update(ctx, csid, handler);
- result = (Role) ctx.getOutput();
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity(ServiceMessages.PUT_FAILED
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.PUT_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caugth exception in updateRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.PUT_FAILED + "role csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.PUT_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result;
+ public Role updateRole(@PathParam("csid") String csid, Role theUpdate) {
+ return (Role)update(csid, theUpdate, Role.class);
}
- /**
- * Delete role.
- *
- * @param csid the csid
- *
- * @return the response
- */
@DELETE
@Path("{csid}")
public Response deleteRole(@PathParam("csid") String csid) {
+ logger.debug("deleteRole with csid=" + csid);
+ ensureCSID(csid, ServiceMessages.DELETE_FAILED + "deleteRole ");
- if (logger.isDebugEnabled()) {
- logger.debug("deleteRole with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteRole: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "role csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
try {
//FIXME ideally the following three operations should be in the same tx CSPACE-658
//delete all relationships for this permission
ServiceContext<Role, Role> ctx = createServiceContext((Role) null, Role.class);
((JpaStorageClientImpl) getStorageClient(ctx)).deleteWhere(ctx, csid);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
-
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteRole", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "role csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, csid);
}
-
}
- /**
- * Creates the role permission.
- *
- * @param method the method
- * @param roleCsid the role csid
- * @param input the input
- * @return the response
- */
@POST
@Path("{csid}/permroles")
public Response createRolePermission(@QueryParam("_method") String method, @PathParam("csid") String roleCsid,
return deleteRolePermission(roleCsid, input);
}
}
- if (logger.isDebugEnabled()) {
- logger.debug("createRolePermission with roleCsid=" + roleCsid);
- }
- if (roleCsid == null || "".equals(roleCsid)) {
- logger.error("createRolePermission: missing roleCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.POST_FAILED + "permroles role "
- + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("createRolePermission with roleCsid=" + roleCsid);
+ ensureCSID(roleCsid, ServiceMessages.PUT_FAILED + "permroles role ");
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
path.path(roleCsid + "/permroles/" + permrolecsid);
Response response = Response.created(path.build()).build();
return response;
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity("Create failed reason "
- + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Create failed reason "
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createRolePermission", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.POST_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, roleCsid);
}
}
- /**
- * Gets the role permission.
- *
- * @param roleCsid the role csid
- * @param permrolecsid the permrolecsid
- * @return the role permission
- */
@GET
@Path("{csid}/permroles")
public PermissionRole getRolePermission(
@PathParam("csid") String roleCsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRolePermission with roleCsid=" + roleCsid);
- }
- if (roleCsid == null || "".equals(roleCsid)) {
- logger.error("getRolePermission: missing roleCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "permroles role "
- + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("getRolePermission with roleCsid=" + roleCsid);
+ ensureCSID(roleCsid, ServiceMessages.GET_FAILED + "permroles role ");
PermissionRole result = null;
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
//get relationships for a role
result = subResource.getPermissionRole(roleCsid, SubjectType.PERMISSION);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRolePermission", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRolePermission", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid
- + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, roleCsid);
}
+ checkResult(result, roleCsid, ServiceMessages.GET_FAILED);
return result;
}
public PermissionRoleRel getRolePermission(
@PathParam("csid") String roleCsid,
@PathParam("id") String permrolecsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRolePermission with roleCsid=" + roleCsid);
- }
- if (roleCsid == null || "".equals(roleCsid)) {
- logger.error("getRolePermission: missing roleCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.GET_FAILED + "permroles role "
- + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("getRolePermission with roleCsid=" + roleCsid);
+ ensureCSID(roleCsid, ServiceMessages.GET_FAILED + "permroles role ");
PermissionRoleRel result = null;
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
//get relationships for a role
result = subResource.getPermissionRoleRel(roleCsid, SubjectType.PERMISSION, permrolecsid);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.GET_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRolePermission", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getRolePermission", e);
- }
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.GET_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.GET_FAILED + "permroles role csid=" + roleCsid
- + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, roleCsid);
}
+ checkResult(result, roleCsid, ServiceMessages.GET_FAILED);
return result;
}
- /**
- * Delete role permission.
- *
- * @param roleCsid the role csid
- * @param input the input
- * @return the response
- */
public Response deleteRolePermission(String roleCsid, PermissionRole input) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
- }
-
- if (roleCsid == null || "".equals(roleCsid)) {
- logger.error("deleteRolePermission: missing roleCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "permroles role "
- + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
+ ensureCSID(roleCsid, ServiceMessages.DELETE_FAILED + "permroles role ");
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
//delete all relationships for a permission
subResource.deletePermissionRole(roleCsid, SubjectType.PERMISSION, input);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteRolePermission", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "role csid=" + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, roleCsid);
}
-
}
- /**
- * Delete role permission.
- *
- * @param roleCsid the role csid
- * @return the response
- */
@DELETE
@Path("{csid}/permroles")
public Response deleteRolePermission(
@PathParam("csid") String roleCsid) {
- if (logger.isDebugEnabled()) {
- logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
- }
-
- if (roleCsid == null || "".equals(roleCsid)) {
- logger.error("deleteRolePermission: missing roleCsid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.DELETE_FAILED + "permroles role "
- + ServiceMessages.MISSING_INVALID_CSID + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
+ logger.debug("deleteRolePermission with roleCsid=" + roleCsid);
+ ensureCSID(roleCsid, ServiceMessages.DELETE_FAILED + "permroles role ");
try {
PermissionRoleSubResource subResource =
new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE);
//delete all relationships for a permission
subResource.deletePermissionRole(roleCsid, SubjectType.PERMISSION);
return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(ServiceMessages.DELETE_FAILED
- + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteRolePermission", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + "role csid=" + roleCsid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- logger.error(ServiceMessages.UNKNOWN_ERROR_MSG, e);
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED
- + ServiceMessages.UNKNOWN_ERROR_MSG).type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.DELETE_FAILED, roleCsid);
}
-
}
}
*/
package org.collectionspace.services.blob;
-import java.util.Map;
-import java.util.UUID;
-
import org.collectionspace.services.client.BlobClient;
import org.collectionspace.services.client.PoxPayloadIn;
import org.collectionspace.services.client.PoxPayloadOut;
import org.collectionspace.services.common.FileUtils;
import org.collectionspace.services.common.ResourceBase;
-//import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
import org.collectionspace.services.common.ServiceMessages;
import org.collectionspace.services.common.blob.BlobInput;
import org.collectionspace.services.common.blob.BlobUtil;
import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.blob.nuxeo.BlobDocumentModelHandler; //FIXEME: A resource class should not have a dependency on a specific DocumentHandler
-import org.collectionspace.services.blob.BlobsCommon;
-//import org.collectionspace.services.blob.BlobsCommonList;
-import org.collectionspace.services.jaxb.AbstractCommonList;
import org.collectionspace.services.nuxeo.client.java.CommonList;
-import javax.xml.parsers.ParserConfigurationException;
-
import org.jboss.resteasy.plugins.providers.multipart.InputPart;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartInput;
-import org.jboss.resteasy.plugins.providers.multipart.MultipartOutput;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
-//FIXME: REM - We should not have Nuxeo dependencies in our resource classes.
-import org.collectionspace.services.common.imaging.nuxeo.NuxeoImageUtils;
-import org.collectionspace.services.jaxb.AbstractCommonList;
-import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
-
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.MediaType;
-
-
-import java.io.File;
+import javax.ws.rs.core.UriInfo;
import java.io.InputStream;
import java.util.List;
+import java.util.Map;
+
+//FIXME: REM - We should not have Nuxeo dependencies in our resource classes.
@Path(BlobClient.SERVICE_PATH)
@Consumes("application/xml")
\r
spec = properties.getProperty(URL_PROPERTY);\r
url = new URL(spec);\r
- if (logger.isInfoEnabled()) {\r
- logger.info("readProperties() using url=" + url);\r
- }\r
+ logger.debug("readProperties() using url=" + url);\r
\r
String auth = System.getProperty(AUTH_PROPERTY);\r
if (auth != null && !"".equals(auth)) {\r
public int[] validStatusCodes() {
final int[] STATUS_CODES = {
Response.Status.OK.getStatusCode(),
+ Response.Status.BAD_REQUEST.getStatusCode(),
Response.Status.UNAUTHORIZED.getStatusCode(),
Response.Status.FORBIDDEN.getStatusCode(),
Response.Status.NOT_FOUND.getStatusCode(),
-log4j.rootLogger=debug, stdout, R\r
+log4j.rootLogger=info, stdout, R\r
\r
log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
log4j.appender.R.layout.ConversionPattern=%d %-5p [%t] [%c:%L] %m%n\r
\r
#packages\r
-log4j.logger.org.collectionspace=DEBUG\r
+log4j.logger.org.collectionspace=INFO\r
log4j.logger.org.apache=INFO\r
log4j.logger.httpclient=INFO\r
log4j.logger.org.jboss.resteasy=INFO\r
*/
package org.collectionspace.services.collectionobject;
-import java.util.ArrayList;
-import java.util.List;
+import org.collectionspace.services.client.CollectionObjectClient;
+import org.collectionspace.services.client.IQueryManager;
+import org.collectionspace.services.common.ResourceBase;
+import org.collectionspace.services.common.profile.Profiler;
+import org.collectionspace.services.intake.IntakeResource;
+import org.collectionspace.services.intake.IntakesCommonList;
+import org.collectionspace.services.jaxb.AbstractCommonList;
+import org.collectionspace.services.relation.RelationResource;
+import org.collectionspace.services.relation.RelationsCommonList;
+import org.collectionspace.services.relation.RelationshipType;
+import org.jboss.resteasy.util.HttpResponseCodes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
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.UriBuilder;
import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.MultivaluedMap;
-
-import org.collectionspace.services.client.CollectionObjectClient;
-import org.collectionspace.services.client.IQueryManager;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-//import org.collectionspace.services.common.imaging.nuxeo.NuxeoImageUtils; //FIXME: REM - Please remove all unneeded imports
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-//import org.collectionspace.services.common.context.MultipartServiceContext;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentWrapper;
-//import org.collectionspace.services.common.query.IQueryManager;
-import org.collectionspace.services.common.query.QueryManager;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.intake.IntakeResource;
-import org.collectionspace.services.intake.IntakesCommonList;
-//import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.relation.RelationResource;
-import org.collectionspace.services.relation.RelationsCommonList;
-import org.collectionspace.services.relation.RelationshipType;
-import org.collectionspace.services.common.profile.Profiler;
-
-import org.jboss.resteasy.util.HttpResponseCodes;
+import java.util.ArrayList;
+import java.util.List;
-//FIXME: There should be no direct dependency on Nuxeo in our resource classes.
-import org.nuxeo.ecm.core.api.DocumentModel;
-//import org.nuxeo.ecm.core.api.repository.RepositoryInstance;
-//import org.nuxeo.ecm.core.api.ClientException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class CollectionObjectResource.
- */
@Path(CollectionObjectClient.SERVICE_PATH_COMPONENT)
@Consumes("application/xml")
@Produces("application/xml")
-public class CollectionObjectResource
- extends AbstractMultiPartCollectionSpaceResourceImpl {
+public class CollectionObjectResource extends ResourceBase {
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(CollectionObjectResource.class);
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
public String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision$";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return CollectionObjectClient.SERVICE_PATH_COMPONENT;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<CollectionobjectsCommon> getCommonPartClass() {
return CollectionobjectsCommon.class;
}
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
- */
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// if (ctx.getInput() != null) {
-// Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(),
-// CollectionobjectsCommon.class);
-// if (obj != null) {
-// docHandler.setCommonPart((CollectionobjectsCommon) obj);
-// }
-// }
-// return docHandler;
-// }
- /**
- * Creates the collection object.
- *
- * @param input the input
- *
- * @return the response
- */
- @POST
- public Response createCollectionObject(@Context HttpServletRequest req,
- String xmlPayload) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlPayload);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- UriBuilder path = UriBuilder.fromResource(CollectionObjectResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity("Create failed reason " + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createCollectionObject", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Gets the collection object.
- *
- * @param csid the csid
- *
- * @return the collection object
- */
- @GET
- @Path("{csid}")
- public byte[] getCollectionObject(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getCollectionObject with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getCollectionObject: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "get failed on CollectionObject csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getCollectionObject", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed on CollectionObject csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getCollectionObject", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested CollectionObject CSID:" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
-
- return result.getBytes();
- }
-
- /**
- * Gets the collection object list.
- *
- * @param ui the ui
- * @param keywords the keywords
- *
- * @return the collection object list
- */
- @GET
- @Produces("application/xml")
- public CollectionobjectsCommonList getCollectionObjectList(@Context UriInfo ui,
- @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
- Profiler profiler = new Profiler("getCollectionObjectList():", 1);
- profiler.start();
- CollectionobjectsCommonList result = null;
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- if (keywords != null) {
- result = searchCollectionObjects(queryParams, keywords);
- } else {
- result = getCollectionObjectList(queryParams);
- }
- profiler.stop();
- return result;
- }
-
- /**
- * Gets the collection object list.
- */
- private CollectionobjectsCommonList getCollectionObjectList(MultivaluedMap<String, String> queryParams) {
- CollectionobjectsCommonList collectionObjectList;
- Profiler profiler = new Profiler(this, 1);
- profiler.start();
-
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- collectionObjectList = (CollectionobjectsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getCollectionObjectList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- profiler.stop();
- return collectionObjectList;
- }
-
- /**
- * Update collection object.
- *
- * @param csid the csid
- * @param xmlText an XML representation of the data to be used in the update
- *
- * @return an XML representation of the updated object
- */
- @PUT
- @Path("{csid}")
- public String updateCollectionObject(
- @PathParam("csid") String csid,
- String xmlText) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateCollectionObject with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateCollectionObject: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "update failed on CollectionObject csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn update = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (BadRequestException bre) {
- Response response = Response.status(
- Response.Status.BAD_REQUEST).entity("Update failed reason " + bre.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in updateCollectionObject", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed on CollectionObject csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.toXML();
- }
-
- /**
- * Delete collection object.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteCollectionObject(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteCollectionObject with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteCollectionObject: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "delete failed on CollectionObject csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteCollectionObject", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed on CollectionObject csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- }
-
- // FIXME AR: should the method below be deprecated?
/**
* Gets the intakes common list.
return result;
}
- /**
- * Gets the authority refs.
- *
- * @param csid the csid
- * @param ui the ui
- *
- * @return the authority refs
- */
- @GET
- @Path("{csid}/authorityrefs")
- @Produces("application/xml")
- public AuthorityRefList getAuthorityRefs(
- @PathParam("csid") String csid,
- @Context UriInfo ui) {
- AuthorityRefList authRefList = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentWrapper<DocumentModel> docWrapper =
- getRepositoryClient(ctx).getDoc(ctx, csid);
- DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> docHandler =
- (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
- List<String> authRefFields =
- ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
- ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
- authRefList = docHandler.getAuthorityRefs(docWrapper, authRefFields);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getAuthorityRefs", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return authRefList;
- }
-
+
/**
* Roundtrip.
*
@Path("/search")
@Produces("application/xml")
@Deprecated
- public CollectionobjectsCommonList keywordsSearchCollectionObjects(@Context UriInfo ui,
+ public AbstractCommonList keywordsSearchCollectionObjects(@Context UriInfo ui,
@QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS) String keywords) {
MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- return searchCollectionObjects(queryParams, keywords);
+ return search(queryParams, keywords);
}
-
- /**
- * Search collection objects.
- *
- * @param keywords the keywords
- *
- * @return the collectionobjects common list
- */
- private CollectionobjectsCommonList searchCollectionObjects(
- MultivaluedMap<String, String> queryParams,
- String keywords) {
- CollectionobjectsCommonList collectionObjectList;
- try {
- Profiler profiler = new Profiler("searchCollectionObjects():", 1);
- profiler.start();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- // perform a keyword search
- if (keywords != null && !keywords.isEmpty()) {
- String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
- DocumentFilter documentFilter = handler.getDocumentFilter();
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
- if (logger.isDebugEnabled()) {
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
- }
- }
- profiler.stop();
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- collectionObjectList = (CollectionobjectsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getCollectionObjectList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return collectionObjectList;
- }
-
}
import javax.ws.rs.GET;\r
import javax.ws.rs.Path;\r
import javax.ws.rs.Produces;\r
+import javax.ws.rs.WebApplicationException;\r
import javax.ws.rs.core.MultivaluedMap;\r
import javax.ws.rs.core.Response;\r
\r
+import org.collectionspace.services.common.api.Tools;\r
import org.collectionspace.services.common.context.ServiceContext;\r
import org.collectionspace.services.common.context.ServiceContextProperties;\r
+import org.collectionspace.services.common.document.BadRequestException;\r
+import org.collectionspace.services.common.document.DocumentException;\r
import org.collectionspace.services.common.document.DocumentHandler;\r
+import org.collectionspace.services.common.document.DocumentNotFoundException;\r
import org.collectionspace.services.common.repository.RepositoryClient;\r
import org.collectionspace.services.common.repository.RepositoryClientFactory;\r
+import org.collectionspace.services.common.security.UnauthorizedException;\r
import org.collectionspace.services.common.storage.StorageClient;\r
import org.collectionspace.services.common.storage.jpa.JpaStorageClientImpl;\r
import org.jboss.resteasy.client.ClientResponse;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
\r
/**\r
* The Class AbstractCollectionSpaceResourceImpl.\r
public abstract class AbstractCollectionSpaceResourceImpl<IT, OT>\r
implements CollectionSpaceResource<IT, OT> {\r
\r
+ protected final Logger logger = LoggerFactory.getLogger(this.getClass());\r
+\r
+\r
// Fields for default client factory and client\r
/** The repository client factory. */\r
private RepositoryClientFactory repositoryClientFactory;\r
* Creates the service context.\r
* \r
* @param serviceName the service name\r
- * @param input the input\r
- * \r
* @return the service context< i t, o t>\r
- * \r
* @throws Exception the exception\r
*/\r
protected ServiceContext<IT, OT> createServiceContext(String serviceName,\r
\r
return result;\r
}\r
+\r
+ public void checkResult(Object resultToCheck, String csid, String serviceMessage) throws WebApplicationException {\r
+ if (resultToCheck == null) {\r
+ Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
+ serviceMessage + "csid=" + csid\r
+ + ": was not found.").type(\r
+ "text/plain").build();\r
+ throw new WebApplicationException(response);\r
+ }\r
+ }\r
+\r
+ protected void ensureCSID(String csid, String crudType) throws WebApplicationException {\r
+ if (logger.isDebugEnabled()) {\r
+ logger.debug(crudType + " for " + getClass().getName() + " with csid=" + csid);\r
+ }\r
+ if (csid == null || "".equals(csid)) {\r
+ logger.error(crudType + " for " + getClass().getName() + " missing csid!");\r
+ Response response = Response.status(Response.Status.BAD_REQUEST).entity(crudType + " failed on " + getClass().getName() + " csid=" + csid).type("text/plain").build();\r
+ throw new WebApplicationException(response);\r
+ }\r
+ }\r
+\r
+ protected WebApplicationException bigReThrow(Exception e, String serviceMsg) throws WebApplicationException {\r
+ return bigReThrow(e, serviceMsg, "");\r
+ }\r
+\r
+ protected WebApplicationException bigReThrow(Exception e, String serviceMsg, String csid) throws WebApplicationException {\r
+ Response response;\r
+ if (logger.isDebugEnabled()) {\r
+ logger.debug(getClass().getName(), e);\r
+ }\r
+ /* ===== how RoleResource does it: =======\r
+ } catch (BadRequestException bre) {\r
+ response = Response.status(\r
+ Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED\r
+ + bre.getErrorReason()).type("text/plain").build();\r
+ throw new WebApplicationException(response);\r
+ } catch (DocumentException bre) {\r
+ response = Response.status(\r
+ Response.Status.BAD_REQUEST).entity(ServiceMessages.POST_FAILED\r
+ + bre.getErrorReason()).type("text/plain").build();\r
+ throw new WebApplicationException(response);\r
+ } catch (UnauthorizedException ue) {\r
+ response = Response.status(\r
+ Response.Status.UNAUTHORIZED).entity(ServiceMessages.POST_FAILED\r
+ + ue.getErrorReason()).type("text/plain").build();\r
+ throw new WebApplicationException(response);\r
+ */\r
+\r
+ if (e instanceof UnauthorizedException) {\r
+ response = Response.status(Response.Status.UNAUTHORIZED).entity(serviceMsg + e.getMessage()).type("text/plain").build();\r
+ return new WebApplicationException(response);\r
+\r
+ } else if (e instanceof DocumentNotFoundException) {\r
+ response = Response.status(Response.Status.NOT_FOUND).entity(serviceMsg + " on " + getClass().getName() + " csid=" + csid).type("text/plain").build();\r
+ return new WebApplicationException(response);\r
+\r
+ } else if (e instanceof BadRequestException) {\r
+ int code = ((BadRequestException) e).getErrorCode();\r
+ if (code == 0){\r
+ code = Response.Status.BAD_REQUEST.getStatusCode();\r
+ }\r
+ return new WebApplicationException(e, code);\r
+\r
+ } else if (e instanceof DocumentException){\r
+ int code = ((DocumentException) e).getErrorCode();\r
+ if (code == 0){\r
+ code = Response.Status.BAD_REQUEST.getStatusCode();\r
+ }\r
+ return new WebApplicationException(e, code);\r
+\r
+ } else if (e instanceof WebApplicationException) {\r
+ // subresource may have already thrown this exception\r
+ // so just pass it on\r
+ return (WebApplicationException) e;\r
+\r
+ } else { // e is now instanceof Exception\r
+ String detail = Tools.errorToString(e, true);\r
+ response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(serviceMsg + " detail: " + detail).type("text/plain").build();\r
+ return new WebApplicationException(response);\r
+ }\r
+ }\r
}\r
return MultipartServiceContextFactory.get();\r
}\r
\r
- protected WebApplicationException bigReThrow(Exception e, String serviceMsg)\r
- throws WebApplicationException {\r
- return bigReThrow(e, serviceMsg, "");\r
- }\r
\r
- protected WebApplicationException bigReThrow(Exception e,\r
- String serviceMsg, String csid) throws WebApplicationException {\r
- Response response;\r
- if (logger.isDebugEnabled()) {\r
- logger.debug(getClass().getName(), e);\r
- }\r
- if (e instanceof UnauthorizedException) {\r
- response = Response.status(Response.Status.UNAUTHORIZED).entity(serviceMsg + e.getMessage()).type("text/plain").build();\r
- return new WebApplicationException(response);\r
- } else if (e instanceof DocumentNotFoundException) {\r
- response = Response.status(Response.Status.NOT_FOUND).entity(serviceMsg + " on " + getClass().getName()\r
- + " csid=" + csid).type("text/plain").build();\r
- return new WebApplicationException(response);\r
- } else if (e instanceof BadRequestException) {\r
- return new WebApplicationException(e, ((BadRequestException) e).getErrorCode());\r
- } else if (e instanceof WebApplicationException) {\r
- //\r
- // subresource may have already thrown this exception\r
- // so just pass it on\r
- return (WebApplicationException) e;\r
- } else { // e is now instanceof Exception\r
- String detail = Tools.errorToString(e, true);\r
- response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(serviceMsg + " detail: " + detail).type("text/plain").build();\r
- return new WebApplicationException(response);\r
- }\r
- }\r
+\r
\r
@Override\r
public DocumentHandler createDocumentHandler(ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx) throws Exception {\r
}\r
}\r
\r
- protected void ensureCSID(String csid, String crudType) throws WebApplicationException {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug(crudType + " for " + getClass().getName() + " with csid=" + csid);\r
- }\r
- if (csid == null || "".equals(csid)) {\r
- logger.error(crudType + " for " + getClass().getName() + " missing csid!");\r
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(crudType + " failed on " + getClass().getName() + " csid=" + csid).type("text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- }\r
\r
//======================= CREATE ====================================================\r
@POST\r
--- /dev/null
+package org.collectionspace.services.common;
+
+import org.collectionspace.services.authorization.Role;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.document.DocumentFilter;
+import org.collectionspace.services.common.document.DocumentHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
+import javax.ws.rs.core.UriInfo;
+
+public abstract class SecurityResourceBase extends AbstractCollectionSpaceResourceImpl {
+
+ final Logger logger = LoggerFactory.getLogger(SecurityResourceBase.class);
+
+ public Response create(Object input) {
+ try {
+ ServiceContext ctx = createServiceContext(input, input.getClass());
+ DocumentHandler handler = createDocumentHandler(ctx);
+ String csid = getStorageClient(ctx).create(ctx, handler);
+ UriBuilder path = UriBuilder.fromResource(this.getClass());
+ path.path("" + csid);
+ Response response = Response.created(path.build()).build();
+ return response;
+ } catch (Exception e) {
+ throw bigReThrow(e, ServiceMessages.POST_FAILED+"create in "+this.getClass().getName());
+ }
+ }
+
+ public Object get(String csid, Class objectClass) {
+
+ logger.debug("get with csid=" + csid);
+ ensureCSID(csid, ServiceMessages.GET_FAILED + "csid");
+ Object result = null;
+ try {
+ ServiceContext ctx = createServiceContext((Object) null, objectClass);
+ DocumentHandler handler = createDocumentHandler(ctx);
+ getStorageClient(ctx).get(ctx, csid, handler);
+ result = ctx.getOutput();
+ } catch (Exception e) {
+ throw bigReThrow(e, ServiceMessages.GET_FAILED, csid);
+ }
+ checkResult(result, csid, ServiceMessages.GET_FAILED);
+ return result;
+ }
+
+ public Object getList(UriInfo ui, Class objectClass) {
+ try {
+ ServiceContext ctx = createServiceContext((Object) null, objectClass);
+ DocumentHandler handler = createDocumentHandler(ctx);
+ MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
+ DocumentFilter myFilter = handler.createDocumentFilter();
+ myFilter.setPagination(queryParams);
+ myFilter.setQueryParams(queryParams);
+ handler.setDocumentFilter(myFilter);
+ getStorageClient(ctx).getFiltered(ctx, handler);
+ //RolesList roleList = (RolesList) handler.getCommonPartList();
+ return handler.getCommonPartList();
+ //return roleList;
+ } catch (Exception e) {
+ throw bigReThrow(e, ServiceMessages.LIST_FAILED);
+ }
+ }
+
+ public Object update(@PathParam("csid") String csid, Object theUpdate, Class objectClass) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("updateRole with csid=" + csid);
+ }
+ ensureCSID(csid, ServiceMessages.PUT_FAILED + this.getClass().getName());
+ try {
+ ServiceContext ctx = createServiceContext(theUpdate, objectClass);
+ DocumentHandler handler = createDocumentHandler(ctx);
+ getStorageClient(ctx).update(ctx, csid, handler);
+ return ctx.getOutput();
+ } catch (Exception e) {
+ throw bigReThrow(e, ServiceMessages.PUT_FAILED, csid);
+ }
+ }
+}
*/
package org.collectionspace.services.contact;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
import org.collectionspace.services.client.ContactClient;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-
-import org.jboss.resteasy.util.HttpResponseCodes;
+import org.collectionspace.services.common.ResourceBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * The Class ContactResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
@Path(ContactClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class ContactResource extends
- AbstractMultiPartCollectionSpaceResourceImpl {
- //
- // The logger init
- //
+public class ContactResource extends ResourceBase {
final Logger logger = LoggerFactory.getLogger(ContactResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
- /**
- * Instantiates a new contact resource.
- */
- public ContactResource() {
- // do nothing
- }
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision$";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return ContactClient.SERVICE_NAME;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<ContactsCommon> getCommonPartClass() {
return ContactsCommon.class;
}
-
-// @Override //FIXME: REM - Remove this dead code please
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// if (ctx.getInput() != null) {
-// Object obj = ((MultipartServiceContext)ctx).getInputPart(ctx.getCommonPartLabel(), ContactsCommon.class);
-// if (obj != null) {
-// docHandler.setCommonPart((ContactsCommon) obj);
-// }
-// }
-// return docHandler;
-// }
-
- /**
- * Creates the contact.
- *
- * @param xmlPayload the xml payload
- * @return the response
- */
- @POST
- public Response createContact(String xmlPayload) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlPayload);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- //contactObject.setCsid(csid);
- UriBuilder path = UriBuilder.fromResource(ContactResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createContact", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
- /**
- * Gets the contact.
- *
- * @param csid the csid
- *
- * @return the contact
- */
- @GET
- @Path("{csid}")
- public String getContact(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getContact with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) { //FIXME: REM - This is a silly check? We can't reach this resource if CSID is blank in the URL
- logger.error("getContact: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "Get failed on Contact csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getContact", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed on Contact csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getContact", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested Contact CSID:" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.toXML();
- }
-
- /**
- * Gets the contact list.
- *
- * @param ui the ui
- *
- * @return the contact list
- */
- @GET
- @Produces("application/xml")
- public ContactsCommonList getContactList(@Context UriInfo ui) {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ContactsCommonList contactObjectList = new ContactsCommonList();
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- contactObjectList = (ContactsCommonList) handler.getCommonPartList();
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getContactList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return contactObjectList;
- }
-
- /**
- * Update contact.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the multipart output
- */
- @PUT
- @Path("{csid}")
- public String updateContact(
- @PathParam("csid") String csid,
- String xmlPayload) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateContact with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {//FIXME: REM - This is a silly check? We can't reach this resource if CSID is blank in the URL.
- logger.error("updateContact: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "update failed on Contact csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn theUpdate = new PoxPayloadIn(xmlPayload);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(theUpdate);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in updateContact", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed on Contact csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.toXML();
- }
-
- /**
- * Delete contact.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteContact(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteContact with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteContact: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "Delete failed on Contact csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in deleteContact", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed on Contact csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- }
}
<artifactId>org.collectionspace.services.dimension.jaxb</artifactId>\r
<version>${project.version}</version>\r
</dependency>\r
+ <dependency>\r
+ <groupId>org.collectionspace.services</groupId>\r
+ <artifactId>org.collectionspace.services.dimension.client</artifactId>\r
+ <version>${project.version}</version>\r
+ </dependency>\r
<!-- External dependencies -->\r
<dependency>\r
<groupId>junit</groupId>\r
*/
package org.collectionspace.services.dimension;
+import org.collectionspace.services.client.DimensionClient;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.PathParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-//import org.collectionspace.services.dimension.DimensionsCommonList.*;
-
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-//import org.collectionspace.services.common.context.MultipartServiceContext;
-//import org.collectionspace.services.common.context.MultipartServiceContextFactory;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-/**
- * The Class DimensionResource.
- */
-@Path("/dimensions")
+@Path(DimensionClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class DimensionResource extends
- AbstractMultiPartCollectionSpaceResourceImpl {
+public class DimensionResource extends ResourceBase {
- /** The Constant serviceName. */
- private final static String serviceName = "dimensions";
-
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(DimensionResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
- /**
- * Instantiates a new dimension resource.
- */
- public DimensionResource() {
- // do nothing
- }
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
public String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision$";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
- return serviceName;
+ return DimensionClient.SERVICE_NAME;
}
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// if (ctx.getInput() != null) {
-// Object obj = ((MultipartServiceContext)ctx).getInputPart(ctx.getCommonPartLabel(), DimensionsCommon.class);
-// if (obj != null) {
-// docHandler.setCommonPart((DimensionsCommon) obj);
-// }
-// }
-// return docHandler;
-// }
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
-@Override
+ @Override
public Class<DimensionsCommon> getCommonPartClass() {
return DimensionsCommon.class;
}
-
- /**
- * Creates the dimension.
- *
- * @param xmlText an XML payload
- *
- * @return the response
- */
- @POST
- public Response createDimension(String xmlText) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- //dimensionObject.setCsid(csid);
- UriBuilder path = UriBuilder.fromResource(DimensionResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createDimension", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Gets the dimension.
- *
- * @param csid the csid
- *
- * @return the dimension
- */
- @GET
- @Path("{csid}")
- public byte[] getDimension(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getDimension with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getDimension: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "get failed on Dimension csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getDimension", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed on Dimension csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getDimension", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested Dimension CSID:" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Gets the dimension list.
- *
- * @param ui the ui
- *
- * @return the dimension list
- */
- @GET
- @Produces("application/xml")
- public DimensionsCommonList getDimensionList(@Context UriInfo ui) {
- DimensionsCommonList dimensionObjectList = new DimensionsCommonList();
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- dimensionObjectList = (DimensionsCommonList) handler.getCommonPartList();
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getDimensionList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return dimensionObjectList;
- }
-
- /**
- * Update dimension.
- *
- * @param csid the csid
- * @param xmlText an XML payload
- *
- * @return the multipart output
- */
- @PUT
- @Path("{csid}")
- public byte[] updateDimension(
- @PathParam("csid") String csid, String xmlText) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateDimension with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateDimension: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "update failed on Dimension csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn update = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in updateDimension", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed on Dimension csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Delete dimension.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteDimension(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteDimension with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteDimension: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "delete failed on Dimension csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteDimension", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed on Dimension csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- }
}
*/
package org.collectionspace.services.imports;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
import org.collectionspace.services.common.FileUtils;
import org.collectionspace.services.common.ResourceBase;
import org.collectionspace.services.common.ServiceMain;
import org.collectionspace.services.common.api.FileTools;
import org.collectionspace.services.common.api.Tools;
import org.collectionspace.services.common.api.ZipTools;
-
-// The modified Nuxeo ImportCommand from nuxeo's shell:
import org.collectionspace.services.common.config.TenantBindingConfigReaderImpl;
-import org.collectionspace.services.common.context.ServiceContext;
import org.collectionspace.services.imports.nuxeo.ImportCommand;
import org.jboss.resteasy.plugins.providers.multipart.InputPart;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
import java.util.List;
import java.util.Map;
+// The modified Nuxeo ImportCommand from nuxeo's shell:
+
/**
* @author Laramie Crocker
*/
*/
package org.collectionspace.services.intake;
-import java.util.List;
+import org.collectionspace.services.client.IQueryManager;
+import org.collectionspace.services.client.IntakeClient;
+import org.collectionspace.services.client.PoxPayloadIn;
+import org.collectionspace.services.client.PoxPayloadOut;
+import org.collectionspace.services.common.ResourceBase;
+import org.collectionspace.services.common.ServiceMessages;
+import org.collectionspace.services.common.context.ServiceContext;
+import org.collectionspace.services.common.document.DocumentHandler;
+import org.collectionspace.services.jaxb.AbstractCommonList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-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.UriBuilder;
import javax.ws.rs.core.UriInfo;
+import java.util.List;
-import org.collectionspace.services.client.IQueryManager;
-import org.collectionspace.services.client.IntakeClient;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentWrapper;
-import org.collectionspace.services.common.query.QueryManager;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class IntakeResource.
- */
@Path(IntakeClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class IntakeResource extends
- AbstractMultiPartCollectionSpaceResourceImpl {
+public class IntakeResource extends ResourceBase {
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(IntakeResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
- /**
- * Instantiates a new intake resource.
- */
- public IntakeResource() {
- // do nothing
- }
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision$";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return IntakeClient.SERVICE_NAME;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<IntakesCommon> getCommonPartClass() {
return IntakesCommon.class;
}
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
- */
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// if (ctx.getInput() != null) {
-// Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), IntakesCommon.class);
-// if (obj != null) {
-// docHandler.setCommonPart((IntakesCommon) obj);
-// }
-// }
-// return docHandler;
-// }
-
- /**
- * Creates the intake.
- *
- * @param input the input
- *
- * @return the response
- */
- @POST
- public Response createIntake(String xmlText) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- //intakeObject.setCsid(csid);
- UriBuilder path = UriBuilder.fromResource(IntakeResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createIntake", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
-
- /**
- * Gets the intake.
- *
- * @param csid the csid
- *
- * @return the intake
- */
- @GET
- @Path("{csid}")
- public byte[] getIntake(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getIntake with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getIntake: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "get failed on Intake csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getIntake", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed on Intake csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getIntake", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested Intake CSID:" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
-
- return result.getBytes();
- }
- /**
- * Gets the intake list.
- *
- * @param ui the ui
- * @param keywords the keywords
- *
- * @return the intake list
- */
- @GET
- @Produces("application/xml")
- public IntakesCommonList getIntakeList(@Context UriInfo ui,
- @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
- IntakesCommonList result = null;
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-
- if (keywords != null) {
- result = searchIntakes(queryParams, keywords);
- } else {
- result = getIntakeList(queryParams);
- }
-
- return result;
- }
-
- /**
- * Gets the intake list.
- *
- * @return the intake list
- */
- private IntakesCommonList getIntakeList(MultivaluedMap<String, String> queryParams) {
- IntakesCommonList intakeObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- intakeObjectList = (IntakesCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getIntakeList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return intakeObjectList;
- }
-
- /**
- * Gets the authority refs.
- *
- * @param csid the csid
- * @param ui the ui
- *
- * @return the authority refs
- */
- @GET
- @Path("{csid}/authorityrefs")
- @Produces("application/xml")
- public AuthorityRefList getAuthorityRefs(
- @PathParam("csid") String csid,
- @Context UriInfo ui) {
- AuthorityRefList authRefList = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentWrapper<DocumentModel> docWrapper =
- getRepositoryClient(ctx).getDoc(ctx, csid);
- DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler
- = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
- List<String> authRefFields =
- ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
- ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
- authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getAuthorityRefs", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return authRefList;
- }
-
- /**
- * Gets the intake list.
- *
- * @param csidList the csid list
- *
- * @return the intake list
- */
public IntakesCommonList getIntakeList(List<String> csidList) {
IntakesCommonList intakeObjectList = new IntakesCommonList();
try {
DocumentHandler handler = createDocumentHandler(ctx);
getRepositoryClient(ctx).get(ctx, csidList, handler);
intakeObjectList = (IntakesCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
} catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getIntakeList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
+ throw bigReThrow(e, ServiceMessages.LIST_FAILED);
}
return intakeObjectList;
}
-
- /**
- * Update intake.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the multipart output
- */
- @PUT
- @Path("{csid}")
- public byte[] updateIntake(
- @PathParam("csid") String csid,
- String xmlText) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateIntake with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateIntake: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "update failed on Intake csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn update = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in updateIntake", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed on Intake csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
-
- return result.getBytes();
- }
-
- /**
- * Delete intake.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteIntake(@PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("deleteIntake with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteIntake: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "delete failed on Intake csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteIntake", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed on Intake csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Keywords search intakes.
- *
- * @param ui the ui
- * @param keywords the keywords
- *
- * @return the intakes common list
- */
@GET
@Path("/search")
@Produces("application/xml")
@Deprecated
- public IntakesCommonList keywordsSearchIntakes(@Context UriInfo ui,
+ public AbstractCommonList keywordsSearchIntakes(@Context UriInfo ui,
@QueryParam (IQueryManager.SEARCH_TYPE_KEYWORDS) String keywords) {
MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- return searchIntakes(queryParams, keywords);
+ return search(queryParams, keywords);
}
-
- /**
- * Search intakes.
- *
- * @param keywords the keywords
- *
- * @return the intakes common list
- */
- private IntakesCommonList searchIntakes(MultivaluedMap<String, String> queryParams,
- String keywords) {
- IntakesCommonList intakesObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- // perform a keyword search
- if (keywords != null && !keywords.isEmpty()) {
- String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
- DocumentFilter documentFilter = handler.getDocumentFilter();
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
- if (logger.isDebugEnabled()) {
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
- }
- }
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- intakesObjectList = (IntakesCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in search for Intakes", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return intakesObjectList;
- }
}
public class LoaninClient extends AbstractPoxServiceClientImpl<AbstractCommonList, LoaninProxy> {
public static final String SERVICE_NAME = "loansin";
public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;
+ public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;
/* (non-Javadoc)
* @see org.collectionspace.services.client.AbstractServiceClientImpl#getServicePathComponent()
<artifactId>org.collectionspace.services.loanin.jaxb</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.collectionspace.services</groupId>
+ <artifactId>org.collectionspace.services.loanin.client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.collectionspace.services</groupId>
<artifactId>org.collectionspace.services.collectionobject.jaxb</artifactId>
<version>${project.version}</version>
</dependency>
- <!-- External dependencies -->
+ <!-- External dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
*/
package org.collectionspace.services.loanin;
-import java.util.List;
+import org.collectionspace.services.client.LoaninClient;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import javax.xml.parsers.ParserConfigurationException;
-import org.collectionspace.services.client.IQueryManager;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-import org.collectionspace.services.common.context.MultipartServiceContext;
-import org.collectionspace.services.common.context.MultipartServiceContextFactory;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentWrapper;
-//import org.collectionspace.services.common.query.IQueryManager;
-import org.collectionspace.services.common.query.QueryManager;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.common.vocabulary.RefNameServiceUtils;
-import org.collectionspace.services.jaxb.AbstractCommonList;
-import org.collectionspace.services.nuxeo.client.java.CommonList;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The Class LoaninResource.
- */
-@Path("/loansin")
+@Path(LoaninClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class LoaninResource extends
- AbstractMultiPartCollectionSpaceResourceImpl {
+public class LoaninResource extends ResourceBase {
- /** The Constant SERVICE_NAME. */
- private final static String SERVICE_NAME = "loansin";
-
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(LoaninResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
- /**
- * Instantiates a new loanin resource.
- */
- public LoaninResource() {
- // do nothing
- }
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision$";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
- return SERVICE_NAME;
+ return LoaninClient.SERVICE_NAME;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<LoansinCommon> getCommonPartClass() {
return LoansinCommon.class;
}
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
- */
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// if (ctx.getInput() != null) {
-// Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), LoansinCommon.class);
-// if (obj != null) {
-// docHandler.setCommonPart((LoansinCommon) obj);
-// }
-// }
-// return docHandler;
-// }
-
- @POST
- public Response createLoanin(String xmlText) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- //loaninObject.setCsid(csid);
- UriBuilder path = UriBuilder.fromResource(LoaninResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createLoanin", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
+}
- /**
- * Gets the loanin.
- *
- * @param csid the csid
- *
- * @return the loanin
- */
- @GET
- @Path("{csid}")
- public byte[] getLoanin(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getLoanin with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getLoanin: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "get failed on Loanin csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getLoanin", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed on Loanin csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getLoanin", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested Loanin CSID:" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
- /**
- * Gets the loanin list.
- *
- * @param ui the ui
- * @param keywords the keywords
- *
- * @return the loanin list
- */
- @GET
- @Produces({"application/xml"})
- public AbstractCommonList getLoaninList(@Context UriInfo ui,
- @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
- AbstractCommonList result = null;
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- if (keywords != null) {
- result = searchLoansin(queryParams, keywords);
- } else {
- result = getLoaninList(queryParams);
- }
-
- return result;
- }
-
- /**
- * Gets the loanin list.
- *
- * @return the loanin list
- */
- private CommonList getLoaninList(MultivaluedMap<String, String> queryParams) {
- CommonList loaninObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- loaninObjectList = (CommonList) handler.getCommonPartList();
- } catch (Exception e) {
- throw bigReThrow(e, ServiceMessages.LIST_FAILED, "no-csid-for-list");
- }
- return loaninObjectList;
- }
- /**
- * Gets the authority refs.
- *
- * @param csid the csid
- * @param ui the ui
- *
- * @return the authority refs
- */
- @GET
- @Path("{csid}/authorityrefs")
- public AuthorityRefList getAuthorityRefs(
- @PathParam("csid") String csid,
- @Context UriInfo ui) {
- AuthorityRefList authRefList = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentWrapper<DocumentModel> docWrapper =
- getRepositoryClient(ctx).getDoc(ctx, csid);
- DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler
- = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
- List<String> authRefFields =
- ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
- ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
- authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Failed to retrieve authority references: reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getAuthorityRefs", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Failed to retrieve authority references").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return authRefList;
- }
- /**
- * Gets the loanin list.
- *
- * @param csidList the csid list
- *
- * @return the loanin list
- */
- @Produces({"application/xml"})
- @Deprecated
- public CommonList getLoaninList(List<String> csidList) {
- CommonList loaninObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- loaninObjectList = new CommonList();
-// ServiceContext<MultipartInput, MultipartOutput> ctx = createServiceContext();
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csidList, handler);
- loaninObjectList = (CommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getLoaninList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return loaninObjectList;
- }
-
- /**
- * Update loanin.
- * @param csid the csid
- * @return the multipart output
- */
- @PUT
- @Path("{csid}")
- public byte[] updateLoanin(
- @PathParam("csid") String csid,
- String xmlText) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateLoanin with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateLoanin: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "update failed on Loanin csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn update = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in updateLoanin", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed on Loanin csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Delete loanin.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteLoanin(@PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("deleteLoanin with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteLoanin: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "delete failed on Loanin csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteLoanin", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed on Loanin csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Search loansin.
- *
- * @param keywords the keywords
- *
- * @return the loansin common list
- */
- private CommonList searchLoansin(
- MultivaluedMap<String, String> queryParams,
- String keywords) {
- CommonList loansinObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- // perform a keyword search
- if (keywords != null && !keywords.isEmpty()) {
- String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
- DocumentFilter documentFilter = handler.getDocumentFilter();
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
- if (logger.isDebugEnabled()) {
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
- }
- }
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- loansinObjectList = (CommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in search for Loansin", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return loansinObjectList;
- }
-}
*/
package org.collectionspace.services.loanout;
-import java.util.List;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import org.collectionspace.services.client.IQueryManager;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentWrapper;
-//import org.collectionspace.services.common.query.IQueryManager;
-import org.collectionspace.services.common.query.QueryManager;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-/**
- * The Class LoanoutResource.
- */
@Path("/loansout")
+//@Path(LoanoutClient.SERVICE_PATH_COMPONENT)
@Consumes("application/xml")
@Produces("application/xml")
-public class LoanoutResource extends
- AbstractMultiPartCollectionSpaceResourceImpl {
+public class LoanoutResource extends ResourceBase {
- /** The Constant serviceName. */
private final static String serviceName = "loansout";
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(LoanoutResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
- /**
- * Instantiates a new loanout resource.
- */
- public LoanoutResource() {
- // do nothing
- }
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision$";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return serviceName;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<LoansoutCommon> getCommonPartClass() {
return LoansoutCommon.class;
}
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
- */
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// if (ctx.getInput() != null) {
-// Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), LoansoutCommon.class);
-// if (obj != null) {
-// docHandler.setCommonPart((LoansoutCommon) obj);
-// }
-// }
-// return docHandler;
-// }
-
- /**
- * Creates the loanout.
- *
- * @param input the input
- *
- * @return the response
- */
- @POST
- public Response createLoanout(String xmlText) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- //loanoutObject.setCsid(csid);
- UriBuilder path = UriBuilder.fromResource(LoanoutResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createLoanout", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Gets the loanout.
- *
- * @param csid the csid
- *
- * @return the loanout
- */
- @GET
- @Path("{csid}")
- public byte[] getLoanout(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getLoanout with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getLoanout: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "get failed on Loanout csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getLoanout", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed on Loanout csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getLoanout", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested Loanout CSID:" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Gets the loanout list.
- *
- * @param ui the ui
- * @param keywords the keywords
- *
- * @return the loanout list
- */
- @GET
- @Produces("application/xml")
- public LoansoutCommonList getLoanoutList(@Context UriInfo ui,
- @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
- LoansoutCommonList result = null;
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- if (keywords != null) {
- result = searchLoansout(queryParams, keywords);
- } else {
- result = getLoanoutList(queryParams);
- }
-
- return result;
- }
-
- /**
- * Gets the loanout list.
- *
- * @return the loanout list
- */
- private LoansoutCommonList getLoanoutList(MultivaluedMap<String, String> queryParams) {
- LoansoutCommonList loanoutObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- loanoutObjectList = (LoansoutCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getLoanoutList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return loanoutObjectList;
- }
-
- /**
- * Gets the authority refs.
- *
- * @param csid the csid
- * @param ui the ui
- *
- * @return the authority refs
- */
- @GET
- @Path("{csid}/authorityrefs")
- @Produces("application/xml")
- public AuthorityRefList getAuthorityRefs(
- @PathParam("csid") String csid,
- @Context UriInfo ui) {
- AuthorityRefList authRefList = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentWrapper<DocumentModel> docWrapper =
- getRepositoryClient(ctx).getDoc(ctx, csid);
- DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler
- = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>)createDocumentHandler(ctx);
- List<String> authRefFields =
- ((MultipartServiceContextImpl)ctx).getCommonPartPropertyValues(
- ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
- authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Failed to retrieve authority references: reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getAuthorityRefs", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Failed to retrieve authority references").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return authRefList;
- }
-
- /**
- * Gets the loanout list.
- *
- * @param csidList the csid list
- *
- * @return the loanout list
- */
- @Deprecated
- public LoansoutCommonList getLoanoutList(List<String> csidList) {
- LoansoutCommonList loanoutObjectList = new LoansoutCommonList();
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csidList, handler);
- loanoutObjectList = (LoansoutCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getLoanoutList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return loanoutObjectList;
- }
-
- /**
- * Update loanout.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the multipart output
- */
- @PUT
- @Path("{csid}")
- public byte[] updateLoanout(
- @PathParam("csid") String csid,
- String xmlText) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateLoanout with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateLoanout: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "update failed on Loanout csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn update = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in updateLoanout", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed on Loanout csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Delete loanout.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteLoanout(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteLoanout with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteLoanout: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "delete failed on Loanout csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteLoanout", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed on Loanout csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Search loansout.
- *
- * @param keywords the keywords
- *
- * @return the loansout common list
- */
- private LoansoutCommonList searchLoansout(MultivaluedMap<String, String> queryParams,
- String keywords) {
- LoansoutCommonList loansoutObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
-
- // perform a keyword search
- if (keywords != null && !keywords.isEmpty()) {
- String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
- DocumentFilter documentFilter = handler.getDocumentFilter();
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
- if (logger.isDebugEnabled()) {
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
- }
- }
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- loansoutObjectList = (LoansoutCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in search for Loansout", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return loansoutObjectList;
- }
}
*/
package org.collectionspace.services.location;
-import java.util.List;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
import org.collectionspace.services.client.LocationAuthorityClient;
-import org.collectionspace.services.common.vocabulary.AuthorityJAXBSchema;
-import org.collectionspace.services.LocationJAXBSchema;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.authorityref.AuthorityRefDocList;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-import org.collectionspace.services.common.context.MultipartServiceContext;
-import org.collectionspace.services.common.context.MultipartServiceContextFactory;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentWrapper;
-import org.collectionspace.services.common.repository.RepositoryClient;
-import org.collectionspace.services.common.security.UnauthorizedException;
import org.collectionspace.services.common.vocabulary.AuthorityResource;
-import org.collectionspace.services.common.vocabulary.RefNameServiceUtils;
-import org.collectionspace.services.common.vocabulary.RefNameUtils;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
import org.collectionspace.services.location.nuxeo.LocationDocumentModelHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * The Class LocationAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
@Path(LocationAuthorityClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
private final static String locationServiceName = "locations";
private final static String LOCATIONS_COMMON = "locations_common";
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(LocationAuthorityResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
- /**
- * Instantiates a new location authority resource.
- */
+
public LocationAuthorityResource() {
super(LocationauthoritiesCommon.class, LocationAuthorityResource.class,
LOCATIONAUTHORITIES_COMMON, LOCATIONS_COMMON);
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return locationAuthorityServiceName;
}
- /**
- * Gets the item service name.
- *
- * @return the item service name
- */
public String getItemServiceName() {
return locationServiceName;
}
*/
package org.collectionspace.services.media;
+import org.collectionspace.services.blob.BlobResource;
import org.collectionspace.services.client.BlobClient;
import org.collectionspace.services.client.MediaClient;
import org.collectionspace.services.client.PayloadOutputPart;
import org.collectionspace.services.client.PoxPayloadIn;
import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.ResourceBase;
import org.collectionspace.services.common.ClientType;
+import org.collectionspace.services.common.ResourceBase;
import org.collectionspace.services.common.ServiceMain;
import org.collectionspace.services.common.ServiceMessages;
import org.collectionspace.services.common.blob.BlobInput;
import org.collectionspace.services.common.blob.BlobUtil;
import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.blob.BlobResource;
import org.collectionspace.services.nuxeo.client.java.CommonList;
import org.jboss.resteasy.util.HttpResponseCodes;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-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;
-
import java.io.InputStream;
-import java.util.List;
@Path(MediaClient.SERVICE_PATH)
@Consumes("application/xml")
if (logger.isDebugEnabled()) {
logger.debug(testBanner(testName, CLASS_NAME));
}
- // FIXME: Ultimately, this should return a BAD_REQUEST status.
- testSetup(STATUS_INTERNAL_SERVER_ERROR, ServiceRequestType.READ);
+ testSetup(STATUS_BAD_REQUEST, ServiceRequestType.READ);
// Submit the request to the service and store the response.
MovementClient client = new MovementClient();
if (logger.isDebugEnabled()) {
logger.debug(testBanner(testName, CLASS_NAME));
}
- // FIXME: Ultimately, this should return a BAD_REQUEST status.
- testSetup(STATUS_INTERNAL_SERVER_ERROR, ServiceRequestType.READ);
+ testSetup(STATUS_BAD_REQUEST, ServiceRequestType.READ);
// Submit the request to the service and store the response.
MovementClient client = new MovementClient();
<artifactId>org.collectionspace.services.movement.jaxb</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.collectionspace.services</groupId>
+ <artifactId>org.collectionspace.services.movement.client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.collectionspace.services</groupId>
<artifactId>org.collectionspace.services.collectionobject.jaxb</artifactId>
*/
package org.collectionspace.services.movement;
-import java.util.List;
+import org.collectionspace.services.client.MovementClient;
+import org.collectionspace.services.common.ResourceBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
-import org.collectionspace.services.client.IQueryManager;
-import org.collectionspace.services.client.PoxPayloadIn;
-import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentWrapper;
-//import org.collectionspace.services.common.query.IQueryManager;
-import org.collectionspace.services.common.query.QueryManager;
-import org.collectionspace.services.common.security.UnauthorizedException;
-import org.collectionspace.services.movement.MovementsCommon;
-import org.collectionspace.services.movement.MovementsCommonList;
-import org.collectionspace.services.nuxeo.client.java.DocumentModelHandler;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* MovementResource.java
*
* Handles requests to the Movement service, orchestrates the retrieval
* of relevant resources, and returns responses to the client.
- *
- * $LastChangedRevision$
- * $LastChangedDate$
*/
-@Path("/movements")
+@Path(MovementClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
-public class MovementResource extends AbstractMultiPartCollectionSpaceResourceImpl {
+public class MovementResource extends ResourceBase {
- /** The Constant serviceName. */
- private final static String serviceName = "movements";
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(MovementResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
- /**
- * Instantiates a new movement resource.
- */
- public MovementResource() {
- // do nothing
- }
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision$";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
- return serviceName;
+ return MovementClient.SERVICE_NAME;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<MovementsCommon> getCommonPartClass() {
return MovementsCommon.class;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#createDocumentHandler(org.collectionspace.services.common.context.ServiceContext)
- */
-// @Override
-// public DocumentHandler createDocumentHandler(ServiceContext ctx) throws Exception {
-// DocumentHandler docHandler = ctx.getDocumentHandler();
-// if (ctx.getInput() != null) {
-// Object obj = ((MultipartServiceContext) ctx).getInputPart(ctx.getCommonPartLabel(), MovementsCommon.class);
-// if (obj != null) {
-// docHandler.setCommonPart((MovementsCommon) obj);
-// }
-// }
-// return docHandler;
-// }
- /**
- * Creates the movement.
- *
- * @param input the input
- *
- * @return the response
- */
- @POST
- public Response createMovement(String xmlText) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- //movementObject.setCsid(csid);
- UriBuilder path = UriBuilder.fromResource(MovementResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.CREATE_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createMovement", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.CREATE_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Gets the movement.
- *
- * @param csid the csid
- *
- * @return the movement
- */
- @GET
- @Path("{csid}")
- public byte[] getMovement(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getMovement with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getMovement:" + ServiceMessages.MISSING_CSID);
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.READ_FAILED + ServiceMessages.MISSING_CSID).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.READ_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getMovement", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.READ_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getMovement", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.READ_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.READ_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Gets the movement list.
- *
- * @param ui the ui
- * @param keywords the keywords
- *
- * @return the movement list
- */
- @GET
- @Produces("application/xml")
- public MovementsCommonList getMovementList(@Context UriInfo ui,
- @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
- MovementsCommonList result = null;
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- if (keywords != null) {
- result = searchMovements(queryParams, keywords);
- } else {
- result = getMovementList(queryParams);
- }
-
- return result;
- }
-
- /**
- * Gets the movement list.
- *
- * @return the movement list
- */
- private MovementsCommonList getMovementList(MultivaluedMap<String, String> queryParams) {
- MovementsCommonList movementObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- movementObjectList = (MovementsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.LIST_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getMovementList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.LIST_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return movementObjectList;
- }
-
- /**
- * Gets the authority refs.
- *
- * @param csid the csid
- * @param ui the ui
- *
- * @return the authority refs
- */
- @GET
- @Path("{csid}/authorityrefs")
- @Produces("application/xml")
- public AuthorityRefList getAuthorityRefs(
- @PathParam("csid") String csid,
- @Context UriInfo ui) {
- AuthorityRefList authRefList = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentWrapper<DocumentModel> docWrapper =
- getRepositoryClient(ctx).getDoc(ctx, csid);
- DocumentModelHandler<PoxPayloadIn, PoxPayloadOut> handler = (DocumentModelHandler<PoxPayloadIn, PoxPayloadOut>) createDocumentHandler(ctx);
- List<String> authRefFields =
- ((MultipartServiceContextImpl) ctx).getCommonPartPropertyValues(
- ServiceBindingUtils.AUTH_REF_PROP, ServiceBindingUtils.QUALIFIED_PROP_NAMES);
- authRefList = handler.getAuthorityRefs(docWrapper, authRefFields);
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.AUTH_REFS_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getAuthorityRefs", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.AUTH_REFS_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return authRefList;
- }
-
- /**
- * Gets the movement list.
- *
- * @param csidList the csid list
- *
- * @return the movement list
- */
- @Deprecated
- public MovementsCommonList getMovementList(List<String> csidList) {
- MovementsCommonList movementObjectList = new MovementsCommonList();
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csidList, handler);
- movementObjectList = (MovementsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.LIST_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getMovementList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.LIST_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return movementObjectList;
- }
-
- /**
- * Update movement.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the multipart output
- */
- @PUT
- @Path("{csid}")
- public byte[] updateMovement(
- @PathParam("csid") String csid,
- String xmlText) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateMovement with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateMovement: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- ServiceMessages.UPDATE_FAILED + ServiceMessages.MISSING_CSID).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn update = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.UPDATE_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in updateMovement", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.UPDATE_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.UPDATE_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Delete movement.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteMovement(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteMovement with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteMovement: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "delete failed on Movement csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.DELETE_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteMovement", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- ServiceMessages.DELETE_FAILED + ServiceMessages.resourceNotFoundMsg(csid)).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.DELETE_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Search movements.
- *
- * @param keywords the keywords
- *
- * @return the movements common list
- */
- private MovementsCommonList searchMovements(MultivaluedMap<String, String> queryParams,
- String keywords) {
- MovementsCommonList movementsObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
-
- // perform a keyword search
- if (keywords != null && !keywords.isEmpty()) {
- String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
- DocumentFilter documentFilter = handler.getDocumentFilter();
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
- if (logger.isDebugEnabled()) {
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
- }
- }
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- movementsObjectList = (MovementsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity(
- ServiceMessages.SEARCH_FAILED + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in search for Movements", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity(
- ServiceMessages.SEARCH_FAILED + e.getMessage()).type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return movementsObjectList;
- }
}
public class NoteClient extends AbstractServiceClientImpl<NotesCommonList, NoteProxy> {\r
\r
public static final String SERVICE_NAME = "notes";\r
- public static final String SERVICE_PATH_COMPONENT = "notes";\r
+ public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;\r
+ public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;\r
\r
@Override\r
public String getServiceName() {\r
<artifactId>org.collectionspace.services.note.jaxb</artifactId>\r
<version>${project.version}</version>\r
</dependency>\r
+ <dependency>\r
+ <groupId>org.collectionspace.services</groupId>\r
+ <artifactId>org.collectionspace.services.note.client</artifactId>\r
+ <version>${project.version}</version>\r
+ </dependency>\r
<!-- External dependencies -->\r
<dependency>\r
<groupId>org.testng</groupId>\r
*/\r
package org.collectionspace.services.note;\r
\r
+import org.collectionspace.services.client.NoteClient;\r
+import org.collectionspace.services.common.ResourceBase;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
import javax.ws.rs.Consumes;\r
-import javax.ws.rs.GET;\r
import javax.ws.rs.Path;\r
import javax.ws.rs.Produces;\r
-import javax.ws.rs.DELETE;\r
-import javax.ws.rs.POST;\r
-import javax.ws.rs.PUT;\r
-import javax.ws.rs.PathParam;\r
-import javax.ws.rs.WebApplicationException;\r
-import javax.ws.rs.core.Context;\r
-import javax.ws.rs.core.MultivaluedMap;\r
-import javax.ws.rs.core.Response;\r
-import javax.ws.rs.core.UriBuilder;\r
-import javax.ws.rs.core.UriInfo;\r
-\r
-import org.collectionspace.services.client.PoxPayloadIn;\r
-import org.collectionspace.services.client.PoxPayloadOut;\r
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;\r
-import org.collectionspace.services.common.ClientType;\r
-import org.collectionspace.services.common.ServiceMain;\r
-import org.collectionspace.services.common.context.ServiceContext;\r
-import org.collectionspace.services.common.document.DocumentNotFoundException;\r
-import org.collectionspace.services.common.document.DocumentHandler;\r
-\r
-import org.jboss.resteasy.util.HttpResponseCodes;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
\r
-/**\r
- * The Class NoteResource.\r
- */\r
-@Path("/notes")\r
+@Path(NoteClient.SERVICE_PATH)\r
@Consumes("application/xml")\r
-@Produces("application/xml;charset=UTF-8")\r
-public class NoteResource extends \r
- AbstractMultiPartCollectionSpaceResourceImpl {\r
-\r
- /** The Constant serviceName. */\r
- private final static String serviceName = "notes";\r
- \r
- /** The logger. */\r
+@Produces("application/xml")\r
+//@Produces("application/xml;charset=UTF-8")\r
+public class NoteResource extends ResourceBase {\r
final Logger logger = LoggerFactory.getLogger(NoteResource.class);\r
- //FIXME retrieve client type from configuration\r
- /** The Constant CLIENT_TYPE. */\r
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();\r
-\r
- /**\r
- * Instantiates a new note resource.\r
- */\r
- public NoteResource() {\r
- // do nothing\r
- }\r
\r
- /* (non-Javadoc)\r
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()\r
- */\r
@Override\r
protected String getVersionString() {\r
- /** The last change revision. */\r
final String lastChangeRevision = "$LastChangedRevision: 1982 $";\r
return lastChangeRevision;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()\r
- */\r
- @Override\r
+ @Override\r
public String getServiceName() {\r
- return serviceName;\r
+ return NoteClient.SERVICE_PATH_COMPONENT;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()\r
- */\r
@Override\r
public Class<NotesCommon> getCommonPartClass() {\r
return NotesCommon.class;\r
}\r
- \r
-\r
- /**\r
- * Creates the note.\r
- * \r
- * @param input the input\r
- * \r
- * @return the response\r
- */\r
- @POST\r
- public Response createNote(String xmlText) {\r
- try {\r
- PoxPayloadIn input = new PoxPayloadIn(xmlText);\r
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);\r
- DocumentHandler handler = createDocumentHandler(ctx);\r
- String csid = getRepositoryClient(ctx).create(ctx, handler);\r
- UriBuilder path = UriBuilder.fromResource(NoteResource.class);\r
- path.path("" + csid);\r
- Response response = Response.created(path.build()).build();\r
- return response;\r
- } catch (Exception e) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("Caught exception in createNote", e);\r
- }\r
- Response response = Response.status(\r
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- }\r
\r
- /**\r
- * Gets the note.\r
- * \r
- * @param csid the csid\r
- * \r
- * @return the note\r
- */\r
- @GET\r
- @Path("{csid}")\r
- public String getNote(\r
- @PathParam("csid") String csid) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("getNote with csid=" + csid);\r
- }\r
- if (csid == null || "".equals(csid)) {\r
- logger.error("getNote: missing csid!");\r
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(\r
- "Get failed on Note csid=" + csid).type(\r
- "text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- PoxPayloadOut result = null;\r
- try {\r
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();\r
- DocumentHandler handler = createDocumentHandler(ctx);\r
- getRepositoryClient(ctx).get(ctx, csid, handler);\r
- result = ctx.getOutput();\r
- } catch (DocumentNotFoundException dnfe) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("getNote", dnfe);\r
- }\r
- Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
- "Get failed on Note csid=" + csid).type(\r
- "text/plain").build();\r
- throw new WebApplicationException(response);\r
- } catch (Exception e) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("getNote", e);\r
- }\r
- Response response = Response.status(\r
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- if (result == null) {\r
- Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
- "Get failed, the requested Note CSID:" + csid + ": was not found.").type(\r
- "text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- return result.toXML();\r
- }\r
-\r
- /**\r
- * Gets the note list.\r
- * \r
- * @param ui the ui\r
- * \r
- * @return the note list\r
- */\r
- @GET\r
- @Produces("application/xml")\r
- public NotesCommonList getNoteList(@Context UriInfo ui) {\r
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();\r
- NotesCommonList noteObjectList = new NotesCommonList();\r
- try {\r
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);\r
- DocumentHandler handler = createDocumentHandler(ctx);\r
- getRepositoryClient(ctx).getFiltered(ctx, handler);\r
- noteObjectList = (NotesCommonList) handler.getCommonPartList();\r
- } catch (Exception e) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("Caught exception in getNoteList", e);\r
- }\r
- Response response = Response.status(\r
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- return noteObjectList;\r
- }\r
-\r
- /**\r
- * Update note.\r
- * \r
- * @param csid the csid\r
- * @param theUpdate the the update\r
- * \r
- * @return the multipart output\r
- */\r
- @PUT\r
- @Path("{csid}")\r
- public String updateNote(\r
- @PathParam("csid") String csid,\r
- String xmlText) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("updateNote with csid=" + csid);\r
- }\r
- if (csid == null || "".equals(csid)) {\r
- logger.error("updateNote: missing csid!");\r
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(\r
- "update failed on Note csid=" + csid).type(\r
- "text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- PoxPayloadOut result = null;\r
- try {\r
- PoxPayloadIn update = new PoxPayloadIn(xmlText);\r
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);\r
- DocumentHandler handler = createDocumentHandler(ctx);\r
- getRepositoryClient(ctx).update(ctx, csid, handler);\r
- result = ctx.getOutput();\r
- } catch (DocumentNotFoundException dnfe) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("Caught exception in updateNote", dnfe);\r
- }\r
- Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
- "Update failed on Note csid=" + csid).type(\r
- "text/plain").build();\r
- throw new WebApplicationException(response);\r
- } catch (Exception e) {\r
- Response response = Response.status(\r
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- return result.toXML();\r
- }\r
-\r
- /**\r
- * Delete note.\r
- * \r
- * @param csid the csid\r
- * \r
- * @return the response\r
- */\r
- @DELETE\r
- @Path("{csid}")\r
- public Response deleteNote(@PathParam("csid") String csid) {\r
-\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("deleteNote with csid=" + csid);\r
- }\r
- if (csid == null || "".equals(csid)) {\r
- logger.error("deleteNote: missing csid!");\r
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(\r
- "Delete failed on Note csid=" + csid).type(\r
- "text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
- try {\r
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();\r
- getRepositoryClient(ctx).delete(ctx, csid);\r
- return Response.status(HttpResponseCodes.SC_OK).build();\r
- } catch (DocumentNotFoundException dnfe) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("Caught exception in deleteNote", dnfe);\r
- }\r
- Response response = Response.status(Response.Status.NOT_FOUND).entity(\r
- "Delete failed on Note csid=" + csid).type(\r
- "text/plain").build();\r
- throw new WebApplicationException(response);\r
- } catch (Exception e) {\r
- Response response = Response.status(\r
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();\r
- throw new WebApplicationException(response);\r
- }\r
-\r
- }\r
}\r
*/
package org.collectionspace.services.organization;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
import org.collectionspace.services.client.OrgAuthorityClient;
import org.collectionspace.services.contact.AuthorityResourceWithContacts;
import org.collectionspace.services.organization.nuxeo.OrganizationDocumentModelHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * The Class OrgAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
@Path("/" + OrgAuthorityClient.SERVICE_PATH_COMPONENT)
@Consumes("application/xml")
@Produces("application/xml")
final Logger logger = LoggerFactory.getLogger(OrgAuthorityResource.class);
- /**
- * Instantiates a new org authority resource.
- */
public OrgAuthorityResource() {
super(OrgauthoritiesCommon.class, OrgAuthorityResource.class,
ORGAUTHORITIES_COMMON, ORGANIZATIONS_COMMON);
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return orgAuthorityServiceName;
}
- /**
- * Gets the item service name.
- *
- * @return the item service name
- */
public String getItemServiceName() {
return organizationServiceName;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<OrgauthoritiesCommon> getCommonPartClass() {
return OrgauthoritiesCommon.class;
*/
package org.collectionspace.services.person;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-
import org.collectionspace.services.client.PersonAuthorityClient;
import org.collectionspace.services.contact.AuthorityResourceWithContacts;
import org.collectionspace.services.person.nuxeo.PersonDocumentModelHandler;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * The Class PersonAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
@Path(PersonAuthorityClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
AuthorityResourceWithContacts<PersonauthoritiesCommon, PersonauthoritiesCommonList, PersonsCommon,
PersonDocumentModelHandler> {
-// private final static String personAuthorityServiceName = "personauthorities";
-// private final static String PERSONAUTHORITIES_COMMON = "personauthorities_common";
-
-// private final static String personServiceName = "persons";
-// private final static String PERSONS_COMMON = "persons_common";
-
final Logger logger = LoggerFactory.getLogger(PersonAuthorityResource.class);
- /**
- * Instantiates a new person authority resource.
- */
public PersonAuthorityResource() {
super(PersonauthoritiesCommon.class, PersonAuthorityResource.class,
PersonAuthorityClient.SERVICE_COMMON_PART_NAME, PersonAuthorityClient.SERVICE_ITEM_COMMON_PART_NAME);
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return PersonAuthorityClient.SERVICE_NAME;
}
- /**
- * Gets the item service name.
- *
- * @return the item service name
- */
@Override
public String getItemServiceName() {
return PersonAuthorityClient.SERVICE_ITEM_NAME;
*/
package org.collectionspace.services.relation;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.UriInfo;
-
import org.collectionspace.services.client.IQueryManager;
import org.collectionspace.services.client.PoxPayloadIn;
import org.collectionspace.services.client.PoxPayloadOut;
import org.collectionspace.services.common.ResourceBase;
import org.collectionspace.services.common.ServiceMessages;
-import org.collectionspace.services.common.relation.IRelationsManager;
-import org.collectionspace.services.common.relation.nuxeo.RelationsUtils;
import org.collectionspace.services.common.context.ServiceContext;
import org.collectionspace.services.common.document.DocumentHandler;
-
-import org.collectionspace.services.jaxb.AbstractCommonList;
-
+import org.collectionspace.services.common.relation.IRelationsManager;
+import org.collectionspace.services.common.relation.nuxeo.RelationsUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+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.UriInfo;
+
@Path("/relations")
@Consumes("application/xml")
@Produces("application/xml")
public class ReportClient extends AbstractPoxServiceClientImpl<ReportsCommonList, ReportProxy> {
public static final String SERVICE_NAME = "reports";
- public static final String SERVICE_PATH_COMPONENT = "reports";
+ public static final String SERVICE_PATH_COMPONENT = SERVICE_NAME;
+ public static final String SERVICE_PATH = "/" + SERVICE_PATH_COMPONENT;
@Override
public String getServiceName() {
<artifactId>org.collectionspace.services.report.jaxb</artifactId>\r
<version>${project.version}</version>\r
</dependency>\r
+ <dependency>\r
+ <groupId>org.collectionspace.services</groupId>\r
+ <artifactId>org.collectionspace.services.report.client</artifactId>\r
+ <version>${project.version}</version>\r
+ </dependency>\r
<dependency>\r
<groupId>org.collectionspace.services</groupId>\r
<artifactId>org.collectionspace.services.collectionobject.jaxb</artifactId>\r
*/
package org.collectionspace.services.report;
-import java.io.File;
-import java.io.FileInputStream;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.security.auth.login.LoginException;
-import javax.sql.DataSource;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
-
import org.collectionspace.services.ReportJAXBSchema;
-import org.collectionspace.services.client.IQueryManager;
import org.collectionspace.services.client.PoxPayloadIn;
import org.collectionspace.services.client.PoxPayloadOut;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
+import org.collectionspace.services.client.ReportClient;
+import org.collectionspace.services.common.ResourceBase;
import org.collectionspace.services.common.ServiceMain;
import org.collectionspace.services.common.config.ConfigReader;
import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
import org.collectionspace.services.common.document.DocumentNotFoundException;
import org.collectionspace.services.common.document.DocumentWrapper;
-import org.collectionspace.services.common.query.QueryManager;
import org.collectionspace.services.common.security.UnauthorizedException;
-import org.jboss.resteasy.util.HttpResponseCodes;
import org.nuxeo.ecm.core.api.DocumentModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * The Class ReportResource.
- */
-@Path("/reports")
-@Consumes("application/xml")
-@Produces("application/xml;charset=UTF-8")
-public class ReportResource extends
- AbstractMultiPartCollectionSpaceResourceImpl {
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.security.auth.login.LoginException;
+import javax.sql.DataSource;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+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.Response;
+import java.io.File;
+import java.io.FileInputStream;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.HashMap;
- /** The Constant serviceName. */
- private final static String serviceName = "reports";
-
+@Path(ReportClient.SERVICE_PATH)
+@Consumes("application/xml")
+@Produces("application/xml")
+//@Produces("application/xml;charset=UTF-8")
+public class ReportResource extends ResourceBase {
private static String repositoryName = "NuxeoDS";
private static String reportsFolder = "reports";
-
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(ReportResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
-
- /**
- * Instantiates a new report resource.
- */
- public ReportResource() {
- // do nothing
- }
-
- public static String getRepositoryName() {
- return repositoryName;
- }
- public static void setRepositoryName(String repositoryName) {
- ReportResource.repositoryName = repositoryName;
- }
-
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getVersionString()
- */
@Override
protected String getVersionString() {
- /** The last change revision. */
final String lastChangeRevision = "$LastChangedRevision: 1982 $";
return lastChangeRevision;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
- return serviceName;
+ return ReportClient.SERVICE_NAME;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<ReportsCommon> getCommonPartClass() {
return ReportsCommon.class;
}
-
- /**
- * Creates the report.
- *
- * @param input the input
- *
- * @return the response
- */
- @POST
- public Response createReport(String xmlText) {
- try {
- PoxPayloadIn input = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(input);
- DocumentHandler handler = createDocumentHandler(ctx);
- String csid = getRepositoryClient(ctx).create(ctx, handler);
- UriBuilder path = UriBuilder.fromResource(ReportResource.class);
- path.path("" + csid);
- Response response = Response.created(path.build()).build();
- return response;
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Create failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in createReport", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Create failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
/**
* Gets the report.
- *
* @param csid the csid
- *
- * @return the report
- */
- @GET
- @Path("{csid}")
- public byte[] getReport(
- @Context UriInfo ui,
- @PathParam("csid") String csid) {
- if (logger.isDebugEnabled()) {
- logger.debug("getReport with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("getReport: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "get failed on Report csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Get failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("getReport", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed on Report csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("getReport", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Get failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- if (result == null) {
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Get failed, the requested Report CSID:" + csid + ": was not found.").type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
- }
-
- /**
- * Gets the report.
- *
- * @param csid the csid
- *
* @return the report
*/
@GET
}
}
}
-
- }
-
- /**
- * Gets the report list.
- *
- * @param ui the ui
- * @param keywords the keywords
- *
- * @return the report list
- */
- @GET
- @Produces("application/xml")
- public ReportsCommonList getReportList(@Context UriInfo ui,
- @QueryParam(IQueryManager.SEARCH_TYPE_KEYWORDS_KW) String keywords) {
- ReportsCommonList result = null;
- MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
-
- if (keywords != null) {
- result = searchReports(queryParams, keywords);
- } else {
- result = getReportList(queryParams);
- }
-
- return result;
- }
-
- /**
- * Gets the report list.
- *
- * @return the report list
- */
- private ReportsCommonList getReportList(MultivaluedMap<String, String> queryParams) {
- ReportsCommonList reportObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- reportObjectList = (ReportsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getReportList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return reportObjectList;
- }
-
-
- /**
- * Gets the report list.
- *
- * @param csidList the csid list
- *
- * @return the report list
- public ReportsCommonList getReportList(List<String> csidList) {
- ReportsCommonList reportObjectList = new ReportsCommonList();
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).get(ctx, csidList, handler);
- reportObjectList = (ReportsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in getReportList", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return reportObjectList;
- }
- */
-
- /**
- * Update report.
- *
- * @param csid the csid
- * @param theUpdate the the update
- *
- * @return the multipart output
- */
- @PUT
- @Path("{csid}")
- public byte[] updateReport(
- @PathParam("csid") String csid,
- String xmlText) {
- if (logger.isDebugEnabled()) {
- logger.debug("updateReport with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("updateReport: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "update failed on Report csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- PoxPayloadOut result = null;
- try {
- PoxPayloadIn update = new PoxPayloadIn(xmlText);
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(update);
- DocumentHandler handler = createDocumentHandler(ctx);
- getRepositoryClient(ctx).update(ctx, csid, handler);
- result = ctx.getOutput();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Update failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caugth exception in updateReport", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Update failed on Report csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Update failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return result.getBytes();
}
- /**
- * Delete report.
- *
- * @param csid the csid
- *
- * @return the response
- */
- @DELETE
- @Path("{csid}")
- public Response deleteReport(@PathParam("csid") String csid) {
-
- if (logger.isDebugEnabled()) {
- logger.debug("deleteReport with csid=" + csid);
- }
- if (csid == null || "".equals(csid)) {
- logger.error("deleteReport: missing csid!");
- Response response = Response.status(Response.Status.BAD_REQUEST).entity(
- "delete failed on Report csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- }
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext();
- getRepositoryClient(ctx).delete(ctx, csid);
- return Response.status(HttpResponseCodes.SC_OK).build();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Delete failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (DocumentNotFoundException dnfe) {
- if (logger.isDebugEnabled()) {
- logger.debug("caught exception in deleteReport", dnfe);
- }
- Response response = Response.status(Response.Status.NOT_FOUND).entity(
- "Delete failed on Report csid=" + csid).type(
- "text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Delete failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- }
-
- /**
- * Search reports.
- *
- * @param keywords the keywords
- *
- * @return the reports common list
- */
- private ReportsCommonList searchReports(MultivaluedMap<String, String> queryParams,
- String keywords) {
- ReportsCommonList reportsObjectList;
- try {
- ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx = createServiceContext(queryParams);
- DocumentHandler handler = createDocumentHandler(ctx);
-
- // perform a keyword search
- if (keywords != null && !keywords.isEmpty()) {
- String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);
- DocumentFilter documentFilter = handler.getDocumentFilter();
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);
- if (logger.isDebugEnabled()) {
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());
- }
- }
- getRepositoryClient(ctx).getFiltered(ctx, handler);
- reportsObjectList = (ReportsCommonList) handler.getCommonPartList();
- } catch (UnauthorizedException ue) {
- Response response = Response.status(
- Response.Status.UNAUTHORIZED).entity("Index failed reason " + ue.getErrorReason()).type("text/plain").build();
- throw new WebApplicationException(response);
- } catch (Exception e) {
- if (logger.isDebugEnabled()) {
- logger.debug("Caught exception in search for Reports", e);
- }
- Response response = Response.status(
- Response.Status.INTERNAL_SERVER_ERROR).entity("Index failed").type("text/plain").build();
- throw new WebApplicationException(response);
- }
- return reportsObjectList;
- }
}
*/
package org.collectionspace.services.taxonomy;
-import java.util.List;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-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.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
import org.collectionspace.services.client.TaxonomyAuthorityClient;
-import org.collectionspace.services.common.vocabulary.AuthorityJAXBSchema;
-import org.collectionspace.services.TaxonJAXBSchema;
-import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-import org.collectionspace.services.common.ClientType;
-import org.collectionspace.services.common.ServiceMain;
-import org.collectionspace.services.common.authorityref.AuthorityRefDocList;
-import org.collectionspace.services.common.authorityref.AuthorityRefList;
-import org.collectionspace.services.common.context.MultipartServiceContext;
-import org.collectionspace.services.common.context.MultipartServiceContextFactory;
-import org.collectionspace.services.common.context.MultipartServiceContextImpl;
-import org.collectionspace.services.common.context.ServiceBindingUtils;
-import org.collectionspace.services.common.context.ServiceContext;
-import org.collectionspace.services.common.document.BadRequestException;
-import org.collectionspace.services.common.document.DocumentException;
-import org.collectionspace.services.common.document.DocumentFilter;
-import org.collectionspace.services.common.document.DocumentHandler;
-import org.collectionspace.services.common.document.DocumentNotFoundException;
-import org.collectionspace.services.common.document.DocumentWrapper;
-import org.collectionspace.services.common.repository.RepositoryClient;
-import org.collectionspace.services.common.security.UnauthorizedException;
import org.collectionspace.services.common.vocabulary.AuthorityResource;
-import org.collectionspace.services.common.vocabulary.RefNameServiceUtils;
-import org.collectionspace.services.common.vocabulary.RefNameUtils;
-import org.collectionspace.services.nuxeo.client.java.RemoteDocumentModelHandlerImpl;
import org.collectionspace.services.taxonomy.nuxeo.TaxonDocumentModelHandler;
-import org.jboss.resteasy.util.HttpResponseCodes;
-import org.nuxeo.ecm.core.api.DocumentModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * The Class TaxonomyAuthorityResource.
- */
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+
@Path(TaxonomyAuthorityClient.SERVICE_PATH)
@Consumes("application/xml")
@Produces("application/xml")
private final static String TAXONOMYAUTHORITY_COMMON = "taxonomyauthority_common";
private final static String taxonomyItemServiceName = "taxon";
private final static String TAXONOMYITEM_COMMON = "taxon_common";
- /** The logger. */
+
final Logger logger = LoggerFactory.getLogger(TaxonomyAuthorityResource.class);
- //FIXME retrieve client type from configuration
- /** The Constant CLIENT_TYPE. */
- final static ClientType CLIENT_TYPE = ServiceMain.getInstance().getClientType();
- /**
- * Instantiates a new taxonomy authority resource.
- */
public TaxonomyAuthorityResource() {
super(TaxonomyauthorityCommon.class, TaxonomyAuthorityResource.class,
TAXONOMYAUTHORITY_COMMON, TAXONOMYITEM_COMMON);
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return taxonomyAuthorityServiceName;
}
- /**
- * Gets the item service name.
- *
- * @return the item service name
- */
@Override
public String getItemServiceName() {
return taxonomyItemServiceName;
*/
package org.collectionspace.services.vocabulary;
-//import javax.ws.rs.Consumes;
-//import javax.ws.rs.DELETE;
-//import javax.ws.rs.GET;
-//import javax.ws.rs.POST;
-//import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-//import javax.ws.rs.PathParam;
-//import javax.ws.rs.Produces;
-//import javax.ws.rs.QueryParam;
-//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.UriBuilder;
-//import javax.ws.rs.core.UriInfo;
-
-//import org.collectionspace.services.common.vocabulary.AuthorityJAXBSchema;
-//import org.collectionspace.services.common.vocabulary.AuthorityItemJAXBSchema;
-import org.collectionspace.services.common.vocabulary.AuthorityResource;
import org.collectionspace.services.client.VocabularyClient;
-
-//import org.collectionspace.services.common.AbstractMultiPartCollectionSpaceResourceImpl;
-//import org.collectionspace.services.common.ClientType;
-//import org.collectionspace.services.common.ServiceMain;
-//import org.collectionspace.services.common.context.ServiceContext;
-//import org.collectionspace.services.common.document.BadRequestException;
-//import org.collectionspace.services.common.document.DocumentFilter;
-//import org.collectionspace.services.common.document.DocumentHandler;
-//import org.collectionspace.services.common.document.DocumentNotFoundException;
-//import org.collectionspace.services.common.security.UnauthorizedException;
-//import org.collectionspace.services.common.query.IQueryManager;
+import org.collectionspace.services.common.vocabulary.AuthorityResource;
import org.collectionspace.services.vocabulary.nuxeo.VocabularyItemDocumentModelHandler;
-//import org.jboss.resteasy.plugins.providers.multipart.PoxPayloadIn;
-//import org.jboss.resteasy.plugins.providers.multipart.PoxPayloadOut;
-//import org.jboss.resteasy.util.HttpResponseCodes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * The Class VocabularyResource.
- */
-//@Path("/vocabularies")
+import javax.ws.rs.Path;
+
@Path("/" + VocabularyClient.SERVICE_PATH_COMPONENT)
public class VocabularyResource extends
AuthorityResource<VocabulariesCommon, VocabulariesCommonList, VocabularyitemsCommonList,
VocabularyItemDocumentModelHandler> {
private final static String vocabularyServiceName = VocabularyClient.SERVICE_PATH_COMPONENT;
-// private final static String vocabularyServiceName = "vocabularies";
private final static String VOCABULARIES_COMMON = "vocabularies_common";
private final static String vocabularyItemServiceName = "vocabularyitems";
private final static String VOCABULARYITEMS_COMMON = "vocabularyitems_common";
- /** The logger. */
final Logger logger = LoggerFactory.getLogger(VocabularyResource.class);
- /**
- * Instantiates a new VocabularyResource.
- */
public VocabularyResource() {
super(VocabulariesCommon.class, VocabularyResource.class,
VOCABULARIES_COMMON, VOCABULARYITEMS_COMMON);
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.AbstractCollectionSpaceResourceImpl#getServiceName()
- */
@Override
public String getServiceName() {
return vocabularyServiceName;
}
- /**
- * Gets the item service name.
- *
- * @return the item service name
- */
@Override
public String getItemServiceName() {
return vocabularyItemServiceName;
}
- /* (non-Javadoc)
- * @see org.collectionspace.services.common.CollectionSpaceResource#getCommonPartClass()
- */
@Override
public Class<VocabulariesCommon> getCommonPartClass() {
return VocabulariesCommon.class;
*/
package org.collectionspace.services.workflow;
-import org.collectionspace.services.client.IQueryManager;
import org.collectionspace.services.client.workflow.WorkflowClient;
import org.collectionspace.services.common.ResourceBase;
import org.collectionspace.services.common.ServiceMessages;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;