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.DossierEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
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 com.iqser.red.service.persistence.service.v1.api.model.download.DownloadWithOptionRequest;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -42,6 +43,7 @@ public class DownloadController implements DownloadResource {
|
|||||||
private final DownloadStatusPersistenceService downloadStatusPersistenceService;
|
private final DownloadStatusPersistenceService downloadStatusPersistenceService;
|
||||||
private final FileStatusPersistenceService fileStatusPersistenceService;
|
private final FileStatusPersistenceService fileStatusPersistenceService;
|
||||||
private final DossierPersistenceService dossierPersistenceService;
|
private final DossierPersistenceService dossierPersistenceService;
|
||||||
|
private final ReportTemplateRepository reportTemplateRepository;
|
||||||
private final ObjectMapper objectMapper;
|
private final ObjectMapper objectMapper;
|
||||||
private final RabbitTemplate rabbitTemplate;
|
private final RabbitTemplate rabbitTemplate;
|
||||||
|
|
||||||
@ -70,14 +72,16 @@ public class DownloadController implements DownloadResource {
|
|||||||
public JSONPrimitive<String> prepareDownload(@RequestBody DownloadWithOptionRequest request) {
|
public JSONPrimitive<String> prepareDownload(@RequestBody DownloadWithOptionRequest request) {
|
||||||
var existingFileStatuses = fileStatusPersistenceService.getStatusesForDossier(request.getDossierId());
|
var existingFileStatuses = fileStatusPersistenceService.getStatusesForDossier(request.getDossierId());
|
||||||
var dossier = dossierPersistenceService.getActiveOrArchivedDossier(request.getDossierId());
|
var dossier = dossierPersistenceService.getActiveOrArchivedDossier(request.getDossierId());
|
||||||
// check reports list and download types
|
// check reports list and download types so both can be valid
|
||||||
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());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
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);
|
return this.startPrepareDownload(request, dossier, existingFileStatuses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user