From d14f5b3fdfca3897f617cb08da98965e5ef66081 Mon Sep 17 00:00:00 2001 From: Richard Millet Date: Wed, 11 Dec 2013 16:54:08 -0800 Subject: [PATCH] CSPACE-6282: Updating a Media record to add or update its Blob should use PUT, not POST. --- .../services/media/MediaResource.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/services/media/service/src/main/java/org/collectionspace/services/media/MediaResource.java b/services/media/service/src/main/java/org/collectionspace/services/media/MediaResource.java index ad1dbede8..9580ff4dd 100644 --- a/services/media/service/src/main/java/org/collectionspace/services/media/MediaResource.java +++ b/services/media/service/src/main/java/org/collectionspace/services/media/MediaResource.java @@ -181,7 +181,7 @@ public class MediaResource extends ResourceBase { String blobCsid = CollectionSpaceClientUtils.extractId(blobresult); queryParams.add(BlobClient.BLOB_CSID_PARAM, blobCsid); // Add the new blob's csid as an artificial query param -the media doc handler will look for this } - return super.update(parentCtx, resourceMap, ui, csid, xmlPayload); // Now call the parent to finish the media resource POST request + return super.update(parentCtx, resourceMap, ui, csid, xmlPayload); // Now call the parent to finish the media resource PUT request } /* @@ -213,7 +213,17 @@ public class MediaResource extends ResourceBase { return response; } - + + @PUT + @Path("{csid}/blob") + @Consumes("multipart/form-data") + @Produces("application/xml") + public Response updateMediaByCreatingBlob(@Context HttpServletRequest req, + @PathParam("csid") String csid, + @QueryParam(BlobClient.BLOB_URI_PARAM) String blobUri) { + return this.createBlob(req, csid, blobUri); + } + /* * Creates a new blob (using the incoming multipart form data) and associates it with an existing media record/resource. * If a URL query param is passed in as well, we use the URL to create the new blob instead of the multipart form data. @@ -222,6 +232,7 @@ public class MediaResource extends ResourceBase { @Path("{csid}") @Consumes("multipart/form-data") @Produces("application/xml") + @Deprecated public Response createBlob(@Context HttpServletRequest req, @PathParam("csid") String csid, @QueryParam(BlobClient.BLOB_URI_PARAM) String blobUri) { -- 2.47.3