type provider and test
This commit is contained in:
parent
906bb1ce47
commit
f36a2c3590
@ -1,5 +1,6 @@
|
|||||||
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
@ -19,6 +20,7 @@ public class DictionaryEntry {
|
|||||||
@Column
|
@Column
|
||||||
private boolean deleted;
|
private boolean deleted;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
private Type type;
|
private Type type;
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -16,8 +18,7 @@ import static javax.persistence.CascadeType.ALL;
|
|||||||
public class Type {
|
public class Type {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
private String id; // das ist jetzt UUID
|
private String id;
|
||||||
// type + dossierId oder type + templateId
|
|
||||||
@Column
|
@Column
|
||||||
private String type;
|
private String type;
|
||||||
@Column
|
@Column
|
||||||
@ -43,12 +44,16 @@ public class Type {
|
|||||||
private List<DictionaryEntry> entries = new ArrayList<>();
|
private List<DictionaryEntry> entries = new ArrayList<>();
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
@JsonIgnore
|
||||||
|
@JoinColumn(name = "dossier_template_id")
|
||||||
private DossierTemplate dossierTemplate;
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
@Column(updatable = false, insertable = false, name = "dossier_template_id")
|
@Column(updatable = false, insertable = false, name = "dossier_template_id")
|
||||||
private String dossierTemplateId;
|
private String dossierTemplateId;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
@JsonIgnore
|
||||||
|
@JoinColumn(name = "dossier_id")
|
||||||
private Dossier dossier;
|
private Dossier dossier;
|
||||||
|
|
||||||
@Column(updatable = false, insertable = false, name = "dossier_id")
|
@Column(updatable = false, insertable = false, name = "dossier_id")
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -53,8 +54,10 @@ public class DossierTemplate {
|
|||||||
private List<ReportTemplate> reportTemplates = new ArrayList<>();
|
private List<ReportTemplate> reportTemplates = new ArrayList<>();
|
||||||
|
|
||||||
@OneToMany
|
@OneToMany
|
||||||
|
@JsonIgnore
|
||||||
private List<Type> dossierTypes = new ArrayList<>();
|
private List<Type> dossierTypes = new ArrayList<>();
|
||||||
|
|
||||||
@OneToMany
|
@OneToMany
|
||||||
|
@JsonIgnore
|
||||||
private List<Dossier> dossiers = new ArrayList<>();
|
private List<Dossier> dossiers = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.iqser.red.service.persistence.service.v1.api.resources;
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Colors;
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Colors;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DictionaryEntry;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@ -26,19 +27,20 @@ public interface DictionaryResource {
|
|||||||
|
|
||||||
String COLOR_PATH = "/color";
|
String COLOR_PATH = "/color";
|
||||||
String VERSION_PATH = "/version";
|
String VERSION_PATH = "/version";
|
||||||
|
String ENTRIES_PATH = "/entries";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
@PostMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE , consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
void addEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId,
|
void addEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId,
|
||||||
@RequestBody List<String> entries,
|
@RequestBody List<String> entries,
|
||||||
@RequestParam(value = "removeCurrent", required = false, defaultValue = "false") boolean removeCurrent);
|
@RequestParam(value = "removeCurrent", required = false, defaultValue = "false") boolean removeCurrent);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
@DeleteMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@DeleteMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE , consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
void deleteEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId,
|
void deleteEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId,
|
||||||
@RequestBody List<String> entries);
|
@RequestBody List<String> entries);
|
||||||
|
|
||||||
@ -49,13 +51,13 @@ public interface DictionaryResource {
|
|||||||
@RequestBody Type typeValue);
|
@RequestBody Type typeValue);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
@ResponseStatus(HttpStatus.CREATED)
|
||||||
@PostMapping(value = TYPE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = TYPE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
void addType(@RequestBody Type typeValue);
|
Type addType(@RequestBody Type typeValue);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
@DeleteMapping(value = TYPE_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE)
|
@DeleteMapping(value = TYPE_PATH + TYPE_PATH_VARIABLE )
|
||||||
void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String typeId);
|
void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String typeId);
|
||||||
|
|
||||||
|
|
||||||
@ -66,9 +68,12 @@ public interface DictionaryResource {
|
|||||||
List<Type> getAllTypesForDossier(@PathVariable(DOSSIER_ID_PARAMETER_NAME) String dossierId);
|
List<Type> getAllTypesForDossier(@PathVariable(DOSSIER_ID_PARAMETER_NAME) String dossierId);
|
||||||
|
|
||||||
|
|
||||||
@GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE , produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
Type getDictionaryForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId);
|
Type getDictionaryForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId);
|
||||||
|
|
||||||
|
@GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE+ENTRIES_PATH , produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<DictionaryEntry> getEntriesForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId);
|
||||||
|
|
||||||
|
|
||||||
@GetMapping(value = VERSION_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE)
|
@GetMapping(value = VERSION_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE)
|
||||||
long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|||||||
@ -1,27 +0,0 @@
|
|||||||
package com.iqser.red.service.persistence.service.v1.api.resources;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
|
||||||
|
|
||||||
public interface TypeResource {
|
|
||||||
|
|
||||||
String TYPE_PATH = "/type";
|
|
||||||
|
|
||||||
@ResponseBody
|
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
|
||||||
@GetMapping(value = TYPE_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
List<Type> getTypes();
|
|
||||||
|
|
||||||
@ResponseBody
|
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
|
||||||
@GetMapping(value = TYPE_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
Type getType(String typeId);
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,12 +1,13 @@
|
|||||||
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
|
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
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.exception.NotFoundException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository;
|
||||||
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.DossierTemplateRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -32,6 +33,8 @@ public class DictionaryPersistenceService {
|
|||||||
checkRankAlreadyExists(type, dossierTemplateId, rank, dossierId);
|
checkRankAlreadyExists(type, dossierTemplateId, rank, dossierId);
|
||||||
|
|
||||||
Type t = new Type();
|
Type t = new Type();
|
||||||
|
t.setId(type + ":" + getTypeIdSuffix(dossierTemplateId, dossierId));
|
||||||
|
t.setType(type);
|
||||||
t.setDossier(dossierId == null ? null : dossierRepository.getOne(dossierId));
|
t.setDossier(dossierId == null ? null : dossierRepository.getOne(dossierId));
|
||||||
t.setDossierTemplate(dossierTemplateRepository.getOne(dossierTemplateId));
|
t.setDossierTemplate(dossierTemplateRepository.getOne(dossierTemplateId));
|
||||||
t.setHexColor(hexColor);
|
t.setHexColor(hexColor);
|
||||||
@ -42,11 +45,19 @@ public class DictionaryPersistenceService {
|
|||||||
t.setRecommendation(isRecommendation);
|
t.setRecommendation(isRecommendation);
|
||||||
t.setAddToDictionaryAction(addToDictionaryAction);
|
t.setAddToDictionaryAction(addToDictionaryAction);
|
||||||
t.setLabel(label);
|
t.setLabel(label);
|
||||||
|
t.setVersion(1);
|
||||||
|
|
||||||
return typeRepository.save(t);
|
return typeRepository.save(t);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getTypeIdSuffix(String dossierTemplateId, String dossierId) {
|
||||||
|
if (StringUtils.isBlank(dossierTemplateId) && StringUtils.isBlank(dossierId)) {
|
||||||
|
throw new BadRequestException("Either DossierId or DossierTemplateId is required");
|
||||||
|
}
|
||||||
|
return dossierTemplateId != null ? dossierTemplateId + (dossierId != null ? ":" + dossierId : "") : dossierId;
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void updateType(String typeId, Type typeValueRequest) {
|
public void updateType(String typeId, Type typeValueRequest) {
|
||||||
|
|
||||||
@ -73,9 +84,6 @@ public class DictionaryPersistenceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<Type> getAllTypesForDossierTemplate(String dossierTemplateId) {
|
public List<Type> getAllTypesForDossierTemplate(String dossierTemplateId) {
|
||||||
|
|
||||||
return typeRepository.findByDossierTemplateId(dossierTemplateId);
|
return typeRepository.findByDossierTemplateId(dossierTemplateId);
|
||||||
@ -107,6 +115,7 @@ public class DictionaryPersistenceService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
public void incrementVersion(String typeId) {
|
public void incrementVersion(String typeId) {
|
||||||
typeRepository.updateByIdSetIncrementVersionByOne(typeId);
|
typeRepository.updateByIdSetIncrementVersionByOne(typeId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,8 +4,10 @@ import com.iqser.red.service.persistence.service.v1.api.model.data.configuration
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
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.jpa.repository.Query;
|
||||||
|
|
||||||
|
import javax.transaction.Transactional;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@ -17,6 +19,7 @@ public interface TypeRepository extends JpaRepository<Type, String> {
|
|||||||
|
|
||||||
List<Type> findByDossierId(String dossierId);
|
List<Type> findByDossierId(String dossierId);
|
||||||
|
|
||||||
|
@Modifying
|
||||||
@Query("update Type t set t.version = t.version +1 where t.id = :typeId")
|
@Query("update Type t set t.version = t.version +1 where t.id = :typeId")
|
||||||
void updateByIdSetIncrementVersionByOne(String typeId);
|
void updateByIdSetIncrementVersionByOne(String typeId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.transaction.Transactional;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -142,7 +143,7 @@ public class DictionaryController implements DictionaryResource {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addType(@RequestBody Type typeRequest) {
|
public Type addType(@RequestBody Type typeRequest) {
|
||||||
|
|
||||||
if (typeRequest.getDossierTemplateId() == null) {
|
if (typeRequest.getDossierTemplateId() == null) {
|
||||||
throw new BadRequestException("Dossier template id does not exist.");
|
throw new BadRequestException("Dossier template id does not exist.");
|
||||||
@ -162,10 +163,9 @@ public class DictionaryController implements DictionaryResource {
|
|||||||
}
|
}
|
||||||
String color = typeRequest.getHexColor();
|
String color = typeRequest.getHexColor();
|
||||||
validateColor(color);
|
validateColor(color);
|
||||||
var type = dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, typeRequest
|
return dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, typeRequest
|
||||||
.getRank(), typeRequest.isHint(), typeRequest.isCaseInsensitive(), typeRequest.isRecommendation(), typeRequest
|
.getRank(), typeRequest.isHint(), typeRequest.isCaseInsensitive(), typeRequest.isRecommendation(), typeRequest
|
||||||
.getDescription(), typeRequest.isAddToDictionaryAction(), typeRequest.getLabel(), typeRequest.getDossierId());
|
.getDescription(), typeRequest.isAddToDictionaryAction(), typeRequest.getLabel(), typeRequest.getDossierId());
|
||||||
dictionaryPersistenceService.incrementVersion(type.getId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -200,10 +200,16 @@ public class DictionaryController implements DictionaryResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Type getDictionaryForType(String typeId) {
|
public Type getDictionaryForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId) {
|
||||||
return dictionaryPersistenceService.getType(typeId);
|
return dictionaryPersistenceService.getType(typeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public List<DictionaryEntry> getEntriesForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId) {
|
||||||
|
return dictionaryPersistenceService.getType(typeId).getEntries();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void validateEntries(List<String> entries) {
|
private void validateEntries(List<String> entries) {
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,9 @@
|
|||||||
|
package com.iqser.red.service.peristence.v1.server.integration.client;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.resources.DictionaryResource;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.resources.UploadResource;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
|
||||||
|
@FeignClient(name = "DictionaryClient", url = "http://localhost:${server.port}")
|
||||||
|
public interface DictionaryClient extends DictionaryResource {
|
||||||
|
}
|
||||||
@ -1,9 +0,0 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.integration.client;
|
|
||||||
|
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.resources.TypeResource;
|
|
||||||
|
|
||||||
@FeignClient(name = "TypeClient", url = "http://localhost:${server.port}")
|
|
||||||
public interface TypeClient extends TypeResource {
|
|
||||||
}
|
|
||||||
@ -1,26 +1,47 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.integration.service;
|
package com.iqser.red.service.peristence.v1.server.integration.service;
|
||||||
|
|
||||||
|
import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.client.TypeClient;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DictionaryEntry;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class TypeProvider {
|
public class TypeProvider {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TypeClient typeClient;
|
private DictionaryClient dictionaryClient;
|
||||||
|
|
||||||
|
public Type testAndProvideType(DossierTemplate dossierTemplate, String typeName) {
|
||||||
|
|
||||||
|
var type = new Type();
|
||||||
|
type.setType(typeName);
|
||||||
|
type.setDescription("test");
|
||||||
|
type.setAddToDictionaryAction(true);
|
||||||
|
type.setHexColor("#dddddd");
|
||||||
|
type.setHint(false);
|
||||||
|
type.setRank(100);
|
||||||
|
type.setRecommendation(false);
|
||||||
|
type.setLabel("test");
|
||||||
|
type.setCaseInsensitive(false);
|
||||||
|
type.setDossierTemplateId(dossierTemplate.getId());
|
||||||
|
|
||||||
|
|
||||||
|
var createdType = dictionaryClient.addType(type);
|
||||||
|
|
||||||
|
|
||||||
|
var loadedType = dictionaryClient.getDictionaryForType(createdType.getId());
|
||||||
|
|
||||||
|
assertThat(loadedType).isNotNull();
|
||||||
|
|
||||||
|
|
||||||
|
return loadedType;
|
||||||
|
}
|
||||||
|
|
||||||
public Type testAndProvideType(DossierTemplate dossierTemplate) {
|
public Type testAndProvideType(DossierTemplate dossierTemplate) {
|
||||||
|
return testAndProvideType(dossierTemplate, "test");
|
||||||
var type = typeClient.getType(dossierTemplate.getDossierTypes().stream().filter(t -> t.getType()).findFirst().get());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,76 @@
|
|||||||
|
package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||||
|
|
||||||
|
import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient;
|
||||||
|
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||||
|
import com.iqser.red.service.peristence.v1.server.integration.service.TypeProvider;
|
||||||
|
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Colors;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DictionaryEntry;
|
||||||
|
import org.assertj.core.util.Lists;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
public class TypeTest extends AbstractPersistenceServerServiceTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TypeProvider typeProvider;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DictionaryClient dictionaryClient;
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testType() {
|
||||||
|
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||||
|
|
||||||
|
var type = typeProvider.testAndProvideType(dossierTemplate);
|
||||||
|
|
||||||
|
dictionaryClient.addEntries(type.getId(), Lists.newArrayList("aaa", "bbb", "ccc"), true);
|
||||||
|
|
||||||
|
var loadedType = dictionaryClient.getDictionaryForType(type.getId());
|
||||||
|
|
||||||
|
assertThat(loadedType.getVersion()).isGreaterThan(type.getVersion());
|
||||||
|
|
||||||
|
List<DictionaryEntry> dict = dictionaryClient.getEntriesForType(type.getId());
|
||||||
|
|
||||||
|
assertThat(dict.size()).isEqualTo(3);
|
||||||
|
|
||||||
|
dictionaryClient.deleteEntries(type.getId(), Lists.newArrayList("aaa", "bbb", "ccc"));
|
||||||
|
|
||||||
|
loadedType = dictionaryClient.getDictionaryForType(type.getId());
|
||||||
|
|
||||||
|
assertThat(loadedType.getVersion()).isGreaterThan(type.getVersion() + 1);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testColors() {
|
||||||
|
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||||
|
|
||||||
|
var colors = new Colors();
|
||||||
|
colors.setAnalysisColor("#dddddd");
|
||||||
|
colors.setDefaultColor("#dddddd");
|
||||||
|
colors.setDictionaryRequestColor("#dddddd");
|
||||||
|
colors.setPreviewColor("#dddddd");
|
||||||
|
colors.setManualRedactionColor("#dddddd");
|
||||||
|
colors.setNotRedacted("#dddddd");
|
||||||
|
colors.setRequestAdd("#dddddd");
|
||||||
|
colors.setRequestRemove("#dddddd");
|
||||||
|
colors.setUpdatedColor("#dddddd");
|
||||||
|
|
||||||
|
colors.setDossierTemplateId(dossierTemplate.getId());
|
||||||
|
|
||||||
|
dictionaryClient.setColors(dossierTemplate.getId(), colors);
|
||||||
|
|
||||||
|
var savedColors = dictionaryClient.getColors(dossierTemplate.getId());
|
||||||
|
assertThat(savedColors).isEqualTo(colors);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -115,14 +115,42 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AuditRepository auditRepository;
|
private AuditRepository auditRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TypeRepository typeRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ManualRedactionRepository manualRedactionRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ForceRedactionRepository forceRedactionRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RemoveRedactionRepository removeRedactionRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LegalBasisChangeRepository legalBasisChangeRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ImageRecategorizationRepository imageRecategorizationRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LegalBasisMappingRepository legalBasisMappingRepository;
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void afterTests() {
|
public void afterTests() {
|
||||||
|
typeRepository.deleteAll();
|
||||||
viewedPagesRepository.deleteAll();
|
viewedPagesRepository.deleteAll();
|
||||||
fileRepository.deleteAll();
|
fileRepository.deleteAll();
|
||||||
dossierRepository.deleteAll();
|
dossierRepository.deleteAll();
|
||||||
dossierTemplateRepository.deleteAll();
|
dossierTemplateRepository.deleteAll();
|
||||||
notificationRepository.deleteAll();
|
notificationRepository.deleteAll();
|
||||||
auditRepository.deleteAll();
|
auditRepository.deleteAll();
|
||||||
|
manualRedactionRepository.deleteAll();
|
||||||
|
forceRedactionRepository.deleteAll();
|
||||||
|
removeRedactionRepository.deleteAll();
|
||||||
|
legalBasisChangeRepository.deleteAll();
|
||||||
|
imageRecategorizationRepository.deleteAll();
|
||||||
|
legalBasisMappingRepository.deleteAll();;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user