Pull request #567: RED-5600 - 500 error code and wrong status codes for /download/prepare-option
Merge in RED/persistence-service from bugfix/RED-5600 to master * commit 'eca24a45354879841e4fea8130d4699e6734af0a': RED-5600 - 500 error code and wrong status codes for /download/prepare-option
This commit is contained in:
commit
913fda17c5
@ -8,6 +8,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ReportTemplateRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadWithOptionRequest;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@ -42,6 +43,7 @@ public class DownloadController implements DownloadResource {
|
||||
private final DownloadStatusPersistenceService downloadStatusPersistenceService;
|
||||
private final FileStatusPersistenceService fileStatusPersistenceService;
|
||||
private final DossierPersistenceService dossierPersistenceService;
|
||||
private final ReportTemplateRepository reportTemplateRepository;
|
||||
private final ObjectMapper objectMapper;
|
||||
private final RabbitTemplate rabbitTemplate;
|
||||
|
||||
@ -70,14 +72,16 @@ public class DownloadController implements DownloadResource {
|
||||
public JSONPrimitive<String> prepareDownload(@RequestBody DownloadWithOptionRequest request) {
|
||||
var existingFileStatuses = fileStatusPersistenceService.getStatusesForDossier(request.getDossierId());
|
||||
var dossier = dossierPersistenceService.getActiveOrArchivedDossier(request.getDossierId());
|
||||
// check reports list and download types
|
||||
if (request.getReportTemplateIds() == null || request.getReportTemplateIds().isEmpty()) {
|
||||
request.setReportTemplateIds(dossier.getReportTemplates().stream().map(ReportTemplateEntity::getTemplateId).collect(Collectors.toList()));
|
||||
}
|
||||
if (request.getDownloadFileTypes() == null || request.getDownloadFileTypes().isEmpty()) {
|
||||
request.setDownloadFileTypes(dossier.getDownloadFileTypes());
|
||||
}
|
||||
// check reports list and download types so both can be valid
|
||||
|
||||
if (request.getReportTemplateIds() != null && !request.getReportTemplateIds().isEmpty()) {
|
||||
//validate reports ids
|
||||
var reportTemplates = reportTemplateRepository.findAllById(request.getReportTemplateIds());
|
||||
if (reportTemplates.isEmpty() && (request.getDownloadFileTypes() == null || request.getDownloadFileTypes().isEmpty())) {
|
||||
throw new BadRequestException(" Invalid reports ids and no download types");
|
||||
}
|
||||
request.setReportTemplateIds(reportTemplates.stream().map(ReportTemplateEntity::getTemplateId).collect(Collectors.toList()));
|
||||
}
|
||||
return this.startPrepareDownload(request, dossier, existingFileStatuses);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user