Example #1
0
  @RequestMapping(
      value = ADD_DOCUMENT_REQUEST,
      method = {RequestMethod.POST})
  public void addDocument(
      HttpServletRequest request,
      HttpServletResponse response,
      @RequestParam(value = "api", required = false) boolean api)
      throws IOException {

    if (apiRequested(response, api, ADD_DOCUMENT_REQUEST)) return;

    com.c9a.buffers.CatalogServiceRequestProtocalBuffer.AddDocumentRequest addNewDocumentRequest =
        com.c9a.buffers.CatalogServiceRequestProtocalBuffer.AddDocumentRequest.parseFrom(
            GoogleProtoclBufferRequestContentUtils.getContentForRequest(request));

    try {

      Reference ref =
          catalogService.addDocument(
              addNewDocumentRequest.getUserId(),
              addNewDocumentRequest.getPartitionId(),
              addNewDocumentRequest.getDocument().getName(),
              addNewDocumentRequest.getParentCatalogCollectionId(),
              addNewDocumentRequest.getDocument().getContent().toByteArray(),
              createPermissionListFromProtoBufEnumList(addNewDocumentRequest.getPermissionsList()),
              createNewMap(addNewDocumentRequest.getAttributesList()));

      CatalogGPBUtils.generateReferenceResponseProtoBuf(
              ref, com.c9a.buffers.CatalogServiceResponseProtocalBuffer.ResponseCode.SUCCESS, "")
          .build()
          .writeTo(response.getOutputStream());
      return;

    } catch (CollectionNotFoundException e) {
      CatalogGPBUtils.generateCatalogCollectionResponseProtoBufError(
              com.c9a.buffers.CatalogServiceResponseProtocalBuffer.ResponseCode
                  .COLLECTION_NOT_FOUND,
              "The collection can not be found with unique id : "
                  + addNewDocumentRequest.getParentCatalogCollectionId())
          .build()
          .writeTo(response.getOutputStream());
      return;
    } catch (CollectionModificationException e) {
      CatalogGPBUtils.generateCatalogCollectionResponseProtoBufError(
              com.c9a.buffers.CatalogServiceResponseProtocalBuffer.ResponseCode
                  .COLLECTION_CAN_NOT_BE_MODIFIED,
              "The parent collection can not be modified : "
                  + addNewDocumentRequest.getParentCatalogCollectionId())
          .build()
          .writeTo(response.getOutputStream());
      return;
    }
  }