RED-2470 - Reject stopwords when editing a dictionary as an admin
- update validation of entries to check for stopwords also - junit tests adede also
This commit is contained in:
parent
11a7af57e4
commit
772e4e6f80
@ -1,6 +1,7 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.controller;
|
package com.iqser.red.service.peristence.v1.server.controller;
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.TextNormalizationUtilities;
|
import com.iqser.red.service.peristence.v1.server.TextNormalizationUtilities;
|
||||||
|
import com.iqser.red.service.peristence.v1.server.service.StopwordService;
|
||||||
import com.iqser.red.service.peristence.v1.server.validation.DictionaryValidator;
|
import com.iqser.red.service.peristence.v1.server.validation.DictionaryValidator;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity;
|
||||||
@ -29,6 +30,7 @@ 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;
|
||||||
|
import java.util.function.Predicate;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@ -43,6 +45,7 @@ public class DictionaryController implements DictionaryResource {
|
|||||||
private final EntryPersistenceService entryPersistenceService;
|
private final EntryPersistenceService entryPersistenceService;
|
||||||
private final DictionaryPersistenceService dictionaryPersistenceService;
|
private final DictionaryPersistenceService dictionaryPersistenceService;
|
||||||
private final ColorsService colorsService;
|
private final ColorsService colorsService;
|
||||||
|
private final StopwordService stopwordService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -238,8 +241,11 @@ public class DictionaryController implements DictionaryResource {
|
|||||||
if (CollectionUtils.isEmpty(entries)) {
|
if (CollectionUtils.isEmpty(entries)) {
|
||||||
throw new BadRequestException("Entry list is empty.");
|
throw new BadRequestException("Entry list is empty.");
|
||||||
}
|
}
|
||||||
|
Predicate<String> isDictionaryEntryNotValid = entry -> DictionaryValidator.validateDictionaryEntry(entry).isPresent();
|
||||||
|
Predicate<String> isStopword = stopwordService::isStopword;
|
||||||
|
|
||||||
List<String> errorMessages = entries.stream()
|
List<String> errorMessages = entries.stream()
|
||||||
.filter(entry -> DictionaryValidator.validateDictionaryEntry(entry).isPresent())
|
.filter(isDictionaryEntryNotValid.or(isStopword))
|
||||||
.collect(toList());
|
.collect(toList());
|
||||||
if (CollectionUtils.isNotEmpty(errorMessages)) {
|
if (CollectionUtils.isNotEmpty(errorMessages)) {
|
||||||
throw new BadRequestException("Error(s) validating dictionary entries:\n" + String.join("\n", errorMessages));
|
throw new BadRequestException("Error(s) validating dictionary entries:\n" + String.join("\n", errorMessages));
|
||||||
|
|||||||
@ -18,6 +18,8 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ty
|
|||||||
|
|
||||||
import feign.FeignException;
|
import feign.FeignException;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -29,6 +31,19 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DossierTemplateClient dossierTemplateClient;
|
private DossierTemplateClient dossierTemplateClient;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAddEntriesWithStopWord() {
|
||||||
|
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||||
|
var typeId = "dossier_redaction";
|
||||||
|
var entries = new ArrayList<String>();
|
||||||
|
entries.add("age");
|
||||||
|
entries.add("page");
|
||||||
|
try {
|
||||||
|
dictionaryClient.addEntries(typeId, entries, false);
|
||||||
|
} catch (FeignException e) {
|
||||||
|
assertThat(e.status()).isEqualTo(400);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCreateDossierDictionaryForTwoDossiers() {
|
public void testCreateDossierDictionaryForTwoDossiers() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user