Merge remote-tracking branch 'origin/master' into RED-9140
This commit is contained in:
commit
e09d2d86a9
@ -0,0 +1,40 @@
|
||||
package com.iqser.red.service.persistence.management.v1.processor.entity.download;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Embeddable;
|
||||
import jakarta.persistence.EmbeddedId;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Table(name = "download_status_reports")
|
||||
public class DownloadStatusReportEntity {
|
||||
|
||||
@EmbeddedId
|
||||
private DownloadStatusReportId downloadStatusReportId;
|
||||
|
||||
@Embeddable
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DownloadStatusReportId implements Serializable {
|
||||
|
||||
@Column(name = "download_status_entity_storage_id")
|
||||
private String downloadStatusEntityStorageId;
|
||||
|
||||
@Column(name = "reports_template_id")
|
||||
private String reportsTemplateId;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -11,15 +11,15 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
@Setter
|
||||
@Service
|
||||
public class StorageToMongoMigration17 extends Migration {
|
||||
public class StorageToMongoMigration18 extends Migration {
|
||||
|
||||
private final StorageToMongoCopyService storageToMongoCopyService;
|
||||
|
||||
private static final String NAME = "Migration for entity log storage from s3 to mongodb";
|
||||
private static final long VERSION = 17;
|
||||
private static final long VERSION = 18;
|
||||
|
||||
|
||||
public StorageToMongoMigration17(StorageToMongoCopyService storageToMongoCopyService) {
|
||||
public StorageToMongoMigration18(StorageToMongoCopyService storageToMongoCopyService) {
|
||||
|
||||
super(NAME, VERSION);
|
||||
this.storageToMongoCopyService = storageToMongoCopyService;
|
||||
@ -4,16 +4,16 @@ import java.time.OffsetDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
|
||||
import jakarta.transaction.Transactional;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadStatusReportRepository;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ReportTemplateRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ReportTemplateUpdateRequest;
|
||||
|
||||
import jakarta.transaction.Transactional;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@Service
|
||||
@ -22,6 +22,7 @@ public class ReportTemplatePersistenceService {
|
||||
|
||||
private final ReportTemplateRepository reportTemplateRepository;
|
||||
private final DossierTemplateRepository dossierTemplateRepository;
|
||||
private final DownloadStatusReportRepository downloadStatusReportRepository;
|
||||
|
||||
|
||||
public void insert(String dossierTemplateId, String templateId, String storageId, String templateName, boolean activeByDefault, boolean multiFileReport) {
|
||||
@ -43,6 +44,7 @@ public class ReportTemplatePersistenceService {
|
||||
@Transactional
|
||||
public void delete(String templateId) {
|
||||
|
||||
downloadStatusReportRepository.deleteByReportsTemplateId(templateId);
|
||||
reportTemplateRepository.deleteById(templateId);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusReportEntity;
|
||||
|
||||
public interface DownloadStatusReportRepository extends JpaRepository<DownloadStatusReportEntity, String> {
|
||||
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("DELETE FROM DownloadStatusReportEntity d WHERE d.downloadStatusReportId.downloadStatusEntityStorageId = :downloadStatusEntityStorageId")
|
||||
void deleteByDownloadStatusReportId(@Param("downloadStatusEntityStorageId") String downloadStatusEntityStorageId);
|
||||
|
||||
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("DELETE FROM DownloadStatusReportEntity d WHERE d.downloadStatusReportId.reportsTemplateId = :reportsTemplateId")
|
||||
void deleteByReportsTemplateId(@Param("reportsTemplateId") String reportsTemplateId);
|
||||
|
||||
|
||||
@Query("SELECT d FROM DownloadStatusReportEntity d WHERE d.downloadStatusReportId.reportsTemplateId = :reportsTemplateId")
|
||||
List<DownloadStatusReportEntity> findByReportsTemplateId(@Param("reportsTemplateId") String reportsTemplateId);
|
||||
|
||||
}
|
||||
@ -210,4 +210,6 @@ databaseChangeLog:
|
||||
- include:
|
||||
file: db/changelog/tenant/126-add-uuid-to-download-status.yaml
|
||||
- include:
|
||||
file: db/changelog/tenant/129-add-component-table.yaml
|
||||
file: db/changelog/tenant/129-add-component-table.yaml
|
||||
- include:
|
||||
file: db/changelog/tenant/130-add-primary-key-constraint-download-status-reports.yaml
|
||||
@ -0,0 +1,9 @@
|
||||
databaseChangeLog:
|
||||
- changeSet:
|
||||
id: add-primary-key-constraint-download-status-reports
|
||||
author: ali
|
||||
changes:
|
||||
- addPrimaryKey:
|
||||
columnNames: download_status_entity_storage_id,reports_template_id
|
||||
constraintName: download_status_reports_pkey
|
||||
tableName: download_status_reports
|
||||
@ -4,15 +4,24 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DownloadClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.ReportTemplateProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.PrepareDownloadWithOptionRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.ReportTemplateUpdateRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DownloadFileType;
|
||||
|
||||
import feign.FeignException;
|
||||
|
||||
@ -21,9 +30,21 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
@Autowired
|
||||
private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider;
|
||||
|
||||
@Autowired
|
||||
private FileTesterAndProvider fileTesterAndProvider;
|
||||
|
||||
@Autowired
|
||||
private DossierTesterAndProvider dossierTesterAndProvider;
|
||||
|
||||
@Autowired
|
||||
private ReportTemplateClient reportTemplateClient;
|
||||
|
||||
@Autowired
|
||||
private DownloadClient downloadClient;
|
||||
|
||||
@Autowired
|
||||
private FileClient fileClient;
|
||||
|
||||
@Autowired
|
||||
private ReportTemplateProvider reportTemplateProvider;
|
||||
|
||||
@ -344,4 +365,40 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDownloadDossierAndDeleteReportTemplate() {
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
var file = fileTesterAndProvider.testAndProvideFile(dossier);
|
||||
|
||||
fileTesterAndProvider.markFileAsProcessed(dossier.getId(), file.getFileId());
|
||||
fileClient.setStatusApproved(dossier.getId(), file.getId());
|
||||
|
||||
// Act & Assert
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossier.getDossierTemplateId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
|
||||
reportTemplateProvider.provideReportTemplate(dossier.getDossierTemplateId(), fileName);
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossier.getDossierTemplateId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getAvailableReportTemplates(dossier.getDossierTemplateId())
|
||||
.iterator().next();
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo(fileName);
|
||||
|
||||
downloadClient.prepareDownload(PrepareDownloadWithOptionRequest.builder()
|
||||
.reportTemplateIds(List.of(firstTemplate.getTemplateId()))
|
||||
.dossierId(dossier.getId())
|
||||
.fileIds(List.of(file.getId()))
|
||||
.build());
|
||||
|
||||
reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId());
|
||||
|
||||
availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossier.getDossierTemplateId());
|
||||
assertThat(availableTemplates).isEmpty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user