Skip to content
Snippets Groups Projects
Unverified Commit b134fb7c authored by Makhtar DIAGNE's avatar Makhtar DIAGNE Committed by GitHub
Browse files

Add methods isEmpty and IsNullOrEmpty to CriteriaUtils and QueryDto (#11)


* Add methods isEmpty and IsNullOrEmpty to CriteriaUtils and QueryDto & some cleaning

* [TECH] QueryDto : improve lamba expression in isEmpty

Co-authored-by: default avatarZakaria <zakaria.tirdad@teamdlab.com>
Co-authored-by: default avatarMakhtar DIAGNE <makhtar.diagne@teamdlab.com>
parent 805dbae6
No related branches found
No related tags found
No related merge requests found
Showing
with 39 additions and 29 deletions
......@@ -43,9 +43,7 @@ import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode;
import fr.gouv.vitamui.commons.api.domain.ServicesData;
import fr.gouv.vitamui.commons.api.domain.UserDto;
import fr.gouv.vitamui.commons.api.exception.ForbiddenException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
package fr.gouv.vitamui.iam.external.server.rest;
import static org.junit.Assert.fail;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
......@@ -25,7 +23,7 @@ public class ApplicationExternalControllerTest extends ApiIamControllerTest<Appl
@MockBean
private ApplicationExternalService service;
private ApplicationExternalController mockedController = MvcUriComponentsBuilder.on(ApplicationExternalController.class);
private final ApplicationExternalController mockedController = MvcUriComponentsBuilder.on(ApplicationExternalController.class);
@Test
public void testGetAllApplications() {
......@@ -50,7 +48,7 @@ public class ApplicationExternalControllerTest extends ApiIamControllerTest<Appl
@Override
protected ApplicationDto buildDto() {
ApplicationDto app = new ApplicationDto();
final ApplicationDto app = new ApplicationDto();
app.setUrl("url");
app.setIdentifier("id");
app.setId("1");
......@@ -73,7 +71,7 @@ public class ApplicationExternalControllerTest extends ApiIamControllerTest<Appl
@Override
protected String[] getServices() {
return new String[] {ServicesData.SERVICE_APPLICATIONS};
return new String[] { ServicesData.SERVICE_APPLICATIONS };
}
@Override
......
......@@ -36,8 +36,10 @@
*/
package fr.gouv.vitamui.iam.internal.server.customer.config;
import java.io.Serializable;
import java.util.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......
......@@ -40,9 +40,6 @@ import fr.gouv.vitamui.iam.internal.server.config.Converters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import fr.gouv.vitamui.commons.api.converter.Converter;
import fr.gouv.vitamui.commons.api.domain.BaseIdDocument;
import fr.gouv.vitamui.commons.api.domain.IdDto;
import fr.gouv.vitamui.commons.logbook.service.EventService;
import fr.gouv.vitamui.iam.internal.server.logbook.service.IamLogbookService;
import fr.gouv.vitamui.iam.internal.server.tenant.dao.TenantRepository;
......
......@@ -6,13 +6,10 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
......
......@@ -4,7 +4,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
......@@ -13,14 +12,11 @@ import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import fr.gouv.vitamui.commons.test.utils.FieldUtils;
import fr.gouv.vitamui.iam.internal.server.customer.config.CustomerInitConfig;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -50,8 +46,10 @@ import fr.gouv.vitamui.commons.mongo.domain.CustomSequence;
import fr.gouv.vitamui.commons.mongo.repository.impl.VitamUIRepositoryImpl;
import fr.gouv.vitamui.commons.rest.client.InternalHttpContext;
import fr.gouv.vitamui.commons.security.client.dto.AuthUserDto;
import fr.gouv.vitamui.commons.test.utils.FieldUtils;
import fr.gouv.vitamui.iam.internal.server.common.ApiIamInternalConstants;
import fr.gouv.vitamui.iam.internal.server.common.domain.MongoDbCollections;
import fr.gouv.vitamui.iam.internal.server.customer.config.CustomerInitConfig;
import fr.gouv.vitamui.iam.internal.server.customer.dao.CustomerRepository;
import fr.gouv.vitamui.iam.internal.server.customer.domain.Customer;
import fr.gouv.vitamui.iam.internal.server.group.dao.GroupRepository;
......
......@@ -38,7 +38,6 @@ package fr.gouv.vitamui.iam.security.config;
import org.springframework.core.env.Environment;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter;
import fr.gouv.vitamui.commons.rest.RestExceptionHandler;
......
......@@ -43,6 +43,7 @@ import java.util.Optional;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
......@@ -143,6 +144,11 @@ public class QueryDto {
return this;
}
@JsonIgnore
public boolean isEmpty() {
return CollectionUtils.isEmpty(getCriterionList()) && (getSubQueries() == null || getSubQueries().stream().allMatch(QueryDto::isEmpty));
}
public static QueryDto fromJson(final Optional<String> json) {
return json.isPresent() ? CriteriaUtils.fromJson(json.get()) : new QueryDto();
}
......
......@@ -155,4 +155,8 @@ public final class CriteriaUtils {
}
}
public static boolean isNullOrEmpty(final QueryDto criteria) {
return criteria == null || criteria.isEmpty();
}
}
package fr.gouv.vitamui.commons.api.utils;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import org.junit.Assert;
......
......@@ -25,7 +25,6 @@ import de.flapdoodle.embed.process.runtime.Network;
import fr.gouv.vitamui.commons.api.converter.OffsetDateTimeToStringConverter;
import fr.gouv.vitamui.commons.api.converter.StringToOffsetDateTimeConverter;
import fr.gouv.vitamui.commons.logbook.dao.EventRepository;
import fr.gouv.vitamui.commons.mongo.config.MongoConfig;
import fr.gouv.vitamui.commons.mongo.repository.CommonsMongoRepository;
import fr.gouv.vitamui.commons.mongo.repository.impl.VitamUIRepositoryImpl;
import org.springframework.test.context.TestPropertySource;
......
......@@ -99,8 +99,9 @@ public abstract class BaseCrudWebClient<C extends AbstractHttpContext, D extends
* @return
*/
public D getOne(final C context, final String id, Optional<String> criteria) throws NotFoundException {
return webClient.get().uri(getPathUrl() + "/" + id).headers(headersConsumer -> headersConsumer.addAll(buildHeaders(context))).attribute("criteria", criteria).retrieve()
.onStatus(status -> !status.is2xxSuccessful(), BaseCrudWebClient::createResponseException).bodyToMono(getDtoClass()).block();
return webClient.get().uri(getPathUrl() + "/" + id).headers(headersConsumer -> headersConsumer.addAll(buildHeaders(context)))
.attribute(CRITERIA_QUERY_PARAM, criteria).retrieve().onStatus(status -> !status.is2xxSuccessful(), BaseCrudWebClient::createResponseException)
.bodyToMono(getDtoClass()).block();
}
/**
......@@ -113,6 +114,20 @@ public abstract class BaseCrudWebClient<C extends AbstractHttpContext, D extends
.onStatus(status -> !status.is2xxSuccessful(), BaseCrudWebClient::createResponseException).bodyToMono(getDtoListClass()).block();
}
/**
* Retrieve all By Criteria
* @param context
* @param criteria
* @return
*/
public List<D> getAll(final C context, final Optional<String> criteria) {
final URIBuilder builder = getUriBuilderFromUrl();
criteria.ifPresent(c -> builder.addParameter(CRITERIA_QUERY_PARAM, c));
return webClient.get().uri(buildUriBuilder(builder)).headers(headersConsumer -> headersConsumer.addAll(buildHeaders(context))).retrieve()
.onStatus(status -> !status.is2xxSuccessful(), BaseCrudWebClient::createResponseException).bodyToMono(getDtoListClass()).block();
}
/**
*
* @param context
......
......@@ -36,7 +36,7 @@
*/
package fr.gouv.vitamui.ui.commons.service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
......@@ -57,8 +57,8 @@ import fr.gouv.vitamui.commons.rest.client.ExternalHttpContext;
*/
public abstract class AbstractCrudWebService<T extends IdDto> {
protected Collection<T> getAll(final ExternalHttpContext context, final Optional<String> criteria) {
return getClient().getAll(context);
public List<T> getAll(final ExternalHttpContext context, final Optional<String> criteria) {
return getClient().getAll(context, criteria);
}
public T create(final ExternalHttpContext c, final T dto) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment