Merge branch 'RED-9255' into 'master'
RED-9255: return imported dossier template id Closes RED-9255 See merge request redactmanager/persistence-service!602
This commit is contained in:
commit
a8ead5bea4
@ -23,6 +23,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.FileSta
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusMapper;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.FileExchangeExportService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ImportResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ReanalysisSettings;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.resource.SupportResource;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse;
|
||||
@ -132,7 +134,7 @@ public class SupportController implements SupportResource {
|
||||
|
||||
|
||||
@Override
|
||||
public void importFiles(MultipartFile file) {
|
||||
public ImportResponse importFiles(MultipartFile file) {
|
||||
|
||||
byte[] bytes;
|
||||
try {
|
||||
@ -140,7 +142,7 @@ public class SupportController implements SupportResource {
|
||||
} catch (IOException e) {
|
||||
throw new BadRequestException("File could not be read and is likely corrupted.", e);
|
||||
}
|
||||
fileExchangeImportService.importFileExchangeArchive(KeycloakSecurity.getUserId(), bytes);
|
||||
return fileExchangeImportService.importFileExchangeArchive(KeycloakSecurity.getUserId(), bytes);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -13,11 +13,12 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ReanalysisSettings;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileExchangeExportRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatusFilter;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileExchangeExportRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ImportResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ReanalysisSettings;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@ -140,11 +141,11 @@ public interface SupportResource {
|
||||
DownloadResponse exportFiles(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileExchangeExportRequest exportRequest);
|
||||
|
||||
|
||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||
@ResponseBody
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
@PostMapping(value = FILE_EXCHANGE_REST_PATH + IMPORT, consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@Operation(summary = "Imports a file exchange export zip.", description = "Use this endpoint to import a full export of a given Dossier Template including all its configurations, dossiers, and files.")
|
||||
@Operation(summary = "Imports a file exchange export zip.", description = "Use this endpoint to import a full export of a given Dossier Template including all its configurations, dossiers, and files. Returns the resulting dossierTemplateId.")
|
||||
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
|
||||
void importFiles(@Schema(type = "string", format = "binary", name = "file") @RequestPart(name = "file") MultipartFile file);
|
||||
ImportResponse importFiles(@Schema(type = "string", format = "binary", name = "file") @RequestPart(name = "file") MultipartFile file);
|
||||
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import com.iqser.red.service.persistence.management.v1.processor.dataexchange.mo
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ImportResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier;
|
||||
|
||||
import io.micrometer.observation.ObservationRegistry;
|
||||
@ -34,7 +35,7 @@ public class FileExchangeImportService {
|
||||
|
||||
|
||||
@Observed(name = "FileExchangeImportService", contextualName = "import-files")
|
||||
public String importFileExchangeArchive(String userId, byte[] archive) {
|
||||
public ImportResponse importFileExchangeArchive(String userId, byte[] archive) {
|
||||
|
||||
long start = System.currentTimeMillis();
|
||||
log.info("Starting file import for user {}", userId);
|
||||
@ -49,7 +50,7 @@ public class FileExchangeImportService {
|
||||
|
||||
enrichObservation(userId, archive, fileExchangeImportModel);
|
||||
|
||||
return dossierTemplateId;
|
||||
return new ImportResponse(dossierTemplateId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -91,7 +91,7 @@ public class FileExchangeImportExportTest extends AbstractPersistenceServerServi
|
||||
|
||||
Path fileExchangeArchive = new ClassPathResource("files/fileexchange/EFSA sanitisation GFL v1_file-exchange.zip").getFile().toPath();
|
||||
|
||||
String importedDossierTemplateId = fileExchangeImportService.importFileExchangeArchive(USER_ID, Files.readAllBytes(fileExchangeArchive));
|
||||
String importedDossierTemplateId = fileExchangeImportService.importFileExchangeArchive(USER_ID, Files.readAllBytes(fileExchangeArchive)).getDossierTemplateId();
|
||||
|
||||
fileExchangeExportService.createDownloadArchive(ExportDownloadMessage.builder()
|
||||
.dossierTemplateId(importedDossierTemplateId)
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
package com.iqser.red.service.persistence.service.v1.api.shared.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ImportResponse {
|
||||
|
||||
String dossierTemplateId;
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user