示例#1
0
  @PUT
  @Path(
      "/{"
          + RodaConstants.API_PATH_PARAM_REPRESENTATION_UUID
          + "}/"
          + RodaConstants.API_PRESERVATION_METADATA
          + "/")
  @ApiOperation(
      value = "Update representation preservation file",
      notes = "Update a preservation file to a representation",
      response = PreservationMetadata.class)
  @ApiResponses(
      value = {
        @ApiResponse(code = 200, message = "OK", response = PreservationMetadata.class),
        @ApiResponse(code = 404, message = "Not found", response = ApiResponseMessage.class)
      })
  public Response updatePreservationMetadataOnFile(
      @ApiParam(value = "The ID of the existing representation", required = true)
          @PathParam(RodaConstants.API_PATH_PARAM_REPRESENTATION_UUID)
          String representationId,
      @ApiParam(value = "The ID of the preservation metadata file", required = false)
          @QueryParam(RodaConstants.API_PATH_PARAM_FILE_ID)
          String fileId,
      @FormDataParam(RodaConstants.API_PARAM_FILE) InputStream inputStream,
      @FormDataParam(RodaConstants.API_PARAM_FILE) FormDataContentDisposition fileDetail,
      @ApiParam(
              value = "Choose format in which to get the response",
              allowableValues = RodaConstants.API_POST_PUT_MEDIA_TYPES)
          @QueryParam(RodaConstants.API_QUERY_KEY_ACCEPT_FORMAT)
          String acceptFormat)
      throws RODAException {
    String mediaType = ApiUtils.getMediaType(acceptFormat, request);

    // get user
    User user = UserUtility.getApiUser(request);

    // delegate action to controller
    Browser.createOrUpdatePreservationMetadataWithRepresentation(
        user, representationId, fileId, inputStream, fileDetail.getFileName(), false);
    return Response.ok(
            new ApiResponseMessage(ApiResponseMessage.OK, "Preservation file updated"), mediaType)
        .build();
  }