RED-3800 clone fix
This commit is contained in:
parent
279c8a79aa
commit
151d466b1f
@ -15,18 +15,11 @@ import lombok.NoArgsConstructor;
|
||||
@Builder
|
||||
public class CloneDossierTemplateRequest {
|
||||
|
||||
private String dossierTemplateId;
|
||||
|
||||
private String nameOfClonedDossierTemplate;
|
||||
|
||||
private String name;
|
||||
private String description;
|
||||
|
||||
private OffsetDateTime validFrom;
|
||||
|
||||
private OffsetDateTime validTo;
|
||||
|
||||
private String cloningUserId;
|
||||
|
||||
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||
|
||||
}
|
||||
|
||||
@ -18,6 +18,8 @@ public interface DossierTemplateResource {
|
||||
|
||||
String USER_ID_PARAM = "userId";
|
||||
|
||||
String CLONE_PATH = "/clone";
|
||||
|
||||
@ResponseBody
|
||||
@ResponseStatus(HttpStatus.ACCEPTED)
|
||||
@PostMapping(value = DOSSIER_TEMPLATE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ -40,7 +42,8 @@ public interface DossierTemplateResource {
|
||||
|
||||
@ResponseBody
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@PostMapping(value = DOSSIER_TEMPLATE_PATH + "/clone", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
DossierTemplate cloneDossierTemplate(@RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest);
|
||||
@PostMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE+CLONE_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
DossierTemplate cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||
@RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest);
|
||||
|
||||
}
|
||||
|
||||
@ -61,17 +61,17 @@ public class DossierTemplateCloneService {
|
||||
private final DossierStatusPersistenceService dossierStatusPersistenceService;
|
||||
|
||||
|
||||
public DossierTemplateEntity cloneDossierTemplate(CloneDossierTemplateRequest cloneDossierTemplateRequest) {
|
||||
public DossierTemplateEntity cloneDossierTemplate(String dossierTemplateId, CloneDossierTemplateRequest cloneDossierTemplateRequest) {
|
||||
|
||||
dossierTemplatePersistenceService.validateDossierTemplateNameIsUnique(cloneDossierTemplateRequest.getNameOfClonedDossierTemplate());
|
||||
dossierTemplatePersistenceService.validateDossierTemplateNameIsUnique(cloneDossierTemplateRequest.getName());
|
||||
|
||||
DossierTemplateEntity clonedDossierTemplate = new DossierTemplateEntity();
|
||||
|
||||
dossierTemplateRepository.findById(cloneDossierTemplateRequest.getDossierTemplateId()).ifPresentOrElse((dossierTemplate) -> {
|
||||
dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> {
|
||||
|
||||
OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS);
|
||||
clonedDossierTemplate.setId(UUID.randomUUID().toString());
|
||||
clonedDossierTemplate.setName(cloneDossierTemplateRequest.getNameOfClonedDossierTemplate());
|
||||
clonedDossierTemplate.setName(cloneDossierTemplateRequest.getName());
|
||||
clonedDossierTemplate.setDescription(cloneDossierTemplateRequest.getDescription() == null || cloneDossierTemplateRequest.getDescription().isEmpty() ? dossierTemplate.getDescription() : cloneDossierTemplateRequest.getDescription());
|
||||
clonedDossierTemplate.setDateAdded(now);
|
||||
clonedDossierTemplate.setDateModified(now);
|
||||
@ -117,7 +117,7 @@ public class DossierTemplateCloneService {
|
||||
dossierTemplateRepository.save(clonedDossierTemplate);
|
||||
|
||||
}, () -> {
|
||||
throw new NotFoundException(String.format(dossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, cloneDossierTemplateRequest.getDossierTemplateId()));
|
||||
throw new NotFoundException(String.format(dossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId));
|
||||
});
|
||||
return clonedDossierTemplate;
|
||||
}
|
||||
|
||||
@ -47,7 +47,8 @@ public class DossierTemplateController implements DossierTemplateResource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public DossierTemplate cloneDossierTemplate(@RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest) {
|
||||
return convert(dossierTemplateCloneService.cloneDossierTemplate(cloneDossierTemplateRequest), DossierTemplate.class);
|
||||
public DossierTemplate cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||
@RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest) {
|
||||
return convert(dossierTemplateCloneService.cloneDossierTemplate(dossierTemplateId,cloneDossierTemplateRequest), DossierTemplate.class);
|
||||
}
|
||||
}
|
||||
|
||||
@ -244,8 +244,8 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(allTemplates.size()).isEqualTo(1);
|
||||
assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate);
|
||||
|
||||
CloneDossierTemplateRequest cdtr = CloneDossierTemplateRequest.builder().dossierTemplateId(dossierTemplate.getId()).nameOfClonedDossierTemplate("Clone of " + dossierTemplate.getName()).cloningUserId("user").build();
|
||||
var clonedDT = dossierTemplateClient.cloneDossierTemplate(cdtr);
|
||||
CloneDossierTemplateRequest cdtr = CloneDossierTemplateRequest.builder().name("Clone of " + dossierTemplate.getName()).cloningUserId("user").build();
|
||||
var clonedDT = dossierTemplateClient.cloneDossierTemplate(dossierTemplate.getId(), cdtr);
|
||||
assertThat(clonedDT.getName()).isEqualTo("Clone of " + dossierTemplate.getName());
|
||||
|
||||
var loadedTemplate = dossierTemplateClient.getDossierTemplate(clonedDT.getId());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user