Search in sources :

Example 1 with UploadTooLargeException

use of org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException in project vorto by eclipse.

the class ShareModelController method uploadModel.

@ApiOperation(value = "Upload and validate a single vorto model")
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<UploadModelResponse> uploadModel(@ApiParam(value = "The vorto model file to upload", required = true) @RequestParam("file") MultipartFile file) {
    if (file.getSize() > maxModelSize) {
        throw new UploadTooLargeException("model", maxModelSize);
    }
    LOGGER.info("uploadModel: [" + file.getOriginalFilename() + "]");
    try {
        uploadModelResult = modelRepository.upload(file.getBytes(), file.getOriginalFilename(), SecurityContextHolder.getContext().getAuthentication().getName());
        List<UploadModelResult> uploadModelResults = Lists.newArrayList();
        uploadModelResults.add(uploadModelResult);
        String message = "Uploaded model " + file.getOriginalFilename() + (uploadModelResult.isValid() ? " is valid to check in." : " has errors. Cannot check in.");
        return validResponse(new UploadModelResponse(message, uploadModelResult.isValid(), uploadModelResults));
    } catch (IOException e) {
        LOGGER.error("Error upload model." + e.getStackTrace());
        UploadModelResponse errorResponse = new UploadModelResponse("Error during upload. Try again. " + e.getMessage(), false, null);
        return new ResponseEntity<UploadModelResponse>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
    }
}
Also used : UploadModelResult(org.eclipse.vorto.repository.api.upload.UploadModelResult) UploadTooLargeException(org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException) UploadModelResponse(org.eclipse.vorto.repository.api.upload.UploadModelResponse) IOException(java.io.IOException) ApiOperation(io.swagger.annotations.ApiOperation) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 2 with UploadTooLargeException

use of org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException in project vorto by eclipse.

the class ShareModelController method uploadMultipleModels.

@ApiOperation(value = "Upload and validate multiple vorto models")
@RequestMapping(value = "multiple", method = RequestMethod.POST)
public ResponseEntity<UploadModelResponse> uploadMultipleModels(@ApiParam(value = "The vorto model files to upload", required = true) @RequestParam("file") MultipartFile file) {
    if (file.getSize() > maxModelSize) {
        throw new UploadTooLargeException("model", maxModelSize);
    }
    LOGGER.info("Bulk upload Models: [" + file.getOriginalFilename() + "]");
    try {
        BulkUploadHelper bulkUploadService = new BulkUploadHelper(this.modelRepository, uploadStorage);
        List<UploadModelResult> uploadModelResults = bulkUploadService.uploadMultiple(file.getBytes(), file.getOriginalFilename(), SecurityContextHolder.getContext().getAuthentication().getName());
        LOGGER.info("Models Uploaded: [" + uploadModelResults.size() + "]");
        UploadModelResponse serverResponse = (uploadModelResults.size() == 0) ? new UploadModelResponse("Uploaded file doesn't have any valid models.", false, uploadModelResults) : createModelResponse(uploadModelResults);
        return validResponse(serverResponse);
    } catch (Exception e) {
        LOGGER.error("Error bulk upload models.", e);
        return erroredResponse("Error during upload. Try again. " + e.getMessage());
    }
}
Also used : UploadModelResult(org.eclipse.vorto.repository.api.upload.UploadModelResult) UploadTooLargeException(org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException) BulkUploadHelper(org.eclipse.vorto.repository.core.impl.utils.BulkUploadHelper) UploadModelResponse(org.eclipse.vorto.repository.api.upload.UploadModelResponse) UploadTooLargeException(org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException) IOException(java.io.IOException) ApiOperation(io.swagger.annotations.ApiOperation) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

ApiOperation (io.swagger.annotations.ApiOperation)2 IOException (java.io.IOException)2 UploadModelResponse (org.eclipse.vorto.repository.api.upload.UploadModelResponse)2 UploadModelResult (org.eclipse.vorto.repository.api.upload.UploadModelResult)2 UploadTooLargeException (org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException)2 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 BulkUploadHelper (org.eclipse.vorto.repository.core.impl.utils.BulkUploadHelper)1