RED-8651 - Evict report templates cache on template upload

This commit is contained in:
Andrei Isvoran 2024-04-09 09:37:58 +02:00
parent ddcff217e5
commit 1c60bc6586
5 changed files with 21 additions and 6 deletions

View File

@ -8,7 +8,7 @@ plugins {
val redactionServiceVersion by rootProject.extra { "4.290.0" }
val pdftronRedactionServiceVersion by rootProject.extra { "4.48.0" }
val redactionReportServiceVersion by rootProject.extra { "4.47.0" }
val redactionReportServiceVersion by rootProject.extra { "4.64.0" }
val searchServiceVersion by rootProject.extra { "2.71.0" }
repositories {

View File

@ -13,8 +13,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.InputStreamResource;
@ -30,18 +28,17 @@ import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity;
import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.PlaceholderClient;
import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.ReportTemplatePlaceholderClient;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService;
import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter;
import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils;
import com.iqser.red.service.persistence.service.v1.api.external.resource.ReportTemplateResource;
import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory;
@ -53,6 +50,8 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ReportTemplateUploadRequest;
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
import com.iqser.red.storage.commons.service.StorageService;
import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter;
import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity;
import com.knecon.fforesight.tenantcommons.TenantContext;
import feign.FeignException;

View File

@ -8,6 +8,7 @@ import java.util.UUID;
import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.ReportTemplatePlaceholderClient;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
@ -27,6 +28,7 @@ public class ReportTemplateService {
private final StorageService storageService;
private final ReportTemplatePersistenceService reportTemplatePersistenceService;
private final ReportTemplatePlaceholderClient reportTemplatePlaceholderClient;
public ReportTemplate uploadTemplate(ReportTemplateUploadRequest reportTemplateUploadRequest) {
@ -55,6 +57,7 @@ public class ReportTemplateService {
.multiFileReport(reportTemplateUploadRequest.isMultiFileReport())
.activeByDefault(reportTemplateUploadRequest.isActiveByDefault())
.build());
reportTemplatePlaceholderClient.uploadTemplate(templateId);
} else {
templateId = UUID.randomUUID().toString();
reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(),

View File

@ -1,7 +1,10 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doNothing;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@ -25,6 +28,13 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest {
private ReportTemplateProvider reportTemplateProvider;
@BeforeEach
public void setup() {
doNothing().when(reportTemplatePlaceholderClient).uploadTemplate(anyString());
}
/*
* Upload report, verify it exist and delete afterwards
*/

View File

@ -57,6 +57,7 @@ import com.iqser.red.service.peristence.v1.server.integration.client.Application
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
import com.iqser.red.service.peristence.v1.server.utils.MetricsPrinterService;
import com.iqser.red.service.persistence.management.v1.processor.client.pdftronredactionservice.PDFTronClient;
import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.ReportTemplatePlaceholderClient;
import com.iqser.red.service.persistence.management.v1.processor.client.redactionservice.RedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.client.searchservice.SearchClient;
import com.iqser.red.service.persistence.management.v1.processor.client.tenantusermanagementservice.UsersClient;
@ -236,6 +237,8 @@ public abstract class AbstractPersistenceServerServiceTest {
protected EncryptionDecryptionService encryptionDecryptionService;
@Autowired
protected TenantCreatedListener tenantCreatedListener;
@MockBean
protected ReportTemplatePlaceholderClient reportTemplatePlaceholderClient;
private static String[] getAllRoles() {