Pull request #108: RED-2488 As an admin I want to set if the report is included in the download package by default
Merge in RED/persistence-service from RED-2488 to master * commit 'd5471a0153a57a8dd4be5842ce11a5e4a2f89f4f': RED-2488 As an admin I want to set if the report is included in the download package by default
This commit is contained in:
commit
2d01de9717
@ -0,0 +1,16 @@
|
||||
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class ReportTemplateUpdateRequest {
|
||||
@NonNull
|
||||
private String fileName;
|
||||
|
||||
private boolean multiFileReport;
|
||||
private boolean activeByDefault;
|
||||
}
|
||||
@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateDownload;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -19,6 +20,7 @@ public interface ReportTemplateResource {
|
||||
String TEMPLATE_ID_PATH_VARIABLE = "/{" + TEMPLATE_ID + "}";
|
||||
|
||||
String DOWNLOAD_PATH = "download";
|
||||
String UPDATE_PATH = "update";
|
||||
|
||||
|
||||
@PostMapping(value = REPORT_TEMPLATE_UPLOAD_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces =
|
||||
@ -37,5 +39,8 @@ public interface ReportTemplateResource {
|
||||
@DeleteMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE)
|
||||
void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId);
|
||||
|
||||
@PutMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + UPDATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId,
|
||||
@RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest);
|
||||
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.
|
||||
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.ReportTemplateRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -51,5 +52,14 @@ public class ReportTemplatePersistenceService {
|
||||
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void updateTemplate(String dossierTemplateId, String templateId, ReportTemplateUpdateRequest updateRequest) {
|
||||
int countUpdate = reportTemplateRepository.updateReportTemplate(dossierTemplateId, templateId, updateRequest.getFileName(),
|
||||
updateRequest.isMultiFileReport(), updateRequest.isActiveByDefault());
|
||||
if (countUpdate == 0) {
|
||||
throw new NotFoundException("Report Template not found for dossier template Id: " + dossierTemplateId + " and templateId: " + templateId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -2,9 +2,16 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ReportTemplateRepository extends JpaRepository<ReportTemplateEntity, String> {
|
||||
List<ReportTemplateEntity> findAllByDossierTemplateId(String dossierTemplateId);
|
||||
|
||||
@Modifying
|
||||
@Query("update ReportTemplateEntity r set r.fileName = :fileName, r.multiFileReport = :multiFileReport, r.activeByDefault = :activeByDefault " +
|
||||
"where r.templateId = :templateId and r.dossierTemplateId = :dossierTemplateId")
|
||||
int updateReportTemplate(String dossierTemplateId, String templateId, String fileName, boolean multiFileReport, boolean activeByDefault);
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@ -94,4 +95,11 @@ public class ReportTemplateController implements ReportTemplateResource {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||
@PathVariable(TEMPLATE_ID) String templateId,
|
||||
@RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest) {
|
||||
reportTemplatePersistenceService.updateTemplate(dossierTemplateId, templateId, reportTemplateUpdateRequest);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -3,6 +3,9 @@ package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.catchThrowable;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest;
|
||||
import feign.FeignException;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@ -427,4 +430,48 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Update report
|
||||
*/
|
||||
@Test
|
||||
public void testReportTemplateUpdate() {
|
||||
|
||||
// Arrange
|
||||
String fileName = "report.xlsx";
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Act & Assert
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
.activeByDefault(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.multiFileReport(false)
|
||||
.fileName(fileName)
|
||||
.template(new byte[]{1, 2, 3, 4})
|
||||
.build());
|
||||
|
||||
var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId());
|
||||
assertThat(availableTemplates).isNotEmpty();
|
||||
|
||||
var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator()
|
||||
.next()
|
||||
.getTemplateId());
|
||||
assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate);
|
||||
assertThat(firstTemplate.getFileName()).isEqualTo(fileName);
|
||||
|
||||
String filenameUpdate = "reportUpdated.xlsx";
|
||||
var updateRequest = new ReportTemplateUpdateRequest(filenameUpdate, true, true);
|
||||
reportTemplateClient.updateTemplate(dossierTemplate.getId(), firstTemplate.getTemplateId(), updateRequest);
|
||||
|
||||
var templateUpdated = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), firstTemplate.getTemplateId());
|
||||
assertThat(templateUpdated.getFileName()).isEqualTo(filenameUpdate);
|
||||
assertThat(templateUpdated.isMultiFileReport()).isTrue();
|
||||
assertThat(templateUpdated.isActiveByDefault()).isTrue();
|
||||
|
||||
try {
|
||||
reportTemplateClient.updateTemplate("123wrongDossier", firstTemplate.getTemplateId(), updateRequest);
|
||||
} catch(FeignException e) {
|
||||
assertThat(e.status()).isEqualTo(404);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user