Skip to content

Commit

Permalink
Use BeanParam for InstanceFilter. Remove unused classes.
Browse files Browse the repository at this point in the history
  • Loading branch information
stuartcaunt committed Nov 26, 2024
1 parent 8c1a83d commit 4063cdc
Show file tree
Hide file tree
Showing 9 changed files with 117 additions and 154 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import eu.ill.visa.business.gateway.events.InstanceThumbnailUpdatedEvent;
import eu.ill.visa.cloud.services.CloudClient;
import eu.ill.visa.core.domain.*;
import eu.ill.visa.core.domain.filters.InstanceFilter;
import eu.ill.visa.core.entity.*;
import eu.ill.visa.core.entity.enumerations.InstanceMemberRole;
import eu.ill.visa.core.entity.enumerations.InstanceState;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package eu.ill.visa.business.services;

import eu.ill.visa.core.domain.*;
import eu.ill.visa.core.entity.enumerations.InstanceState;
import eu.ill.visa.core.domain.filters.InstanceFilter;
import eu.ill.visa.core.entity.*;
import eu.ill.visa.core.entity.enumerations.InstanceState;
import io.quarkus.test.TestTransaction;
import io.quarkus.test.junit.QuarkusTest;
import jakarta.inject.Inject;
Expand Down Expand Up @@ -274,23 +274,28 @@ public void instancesForInstrumentScientistWithFilters() {
User user1 = userService.getById("6");
assertNotNull(user1);

InstanceFilter filter = new InstanceFilter().id(1000L);
InstanceFilter filter = new InstanceFilter();
filter.setId(1000L);
List<Instance> instances = this.instanceService.getAllForInstrumentScientist(user1, filter, null, null);
assertEquals(1, instances.size());

filter = new InstanceFilter().name("Instance 1");
filter = new InstanceFilter();
filter.setNameLike("Instance 1");
instances = this.instanceService.getAllForInstrumentScientist(user1, filter, null, null);
assertEquals(3, instances.size());

filter = new InstanceFilter().owner("1");
filter = new InstanceFilter();
filter.setOwnerId("1");
instances = this.instanceService.getAllForInstrumentScientist(user1, filter, null, null);
assertEquals(2, instances.size());

filter = new InstanceFilter().instrumentId(1L);
filter = new InstanceFilter();
filter.setInstrumentId(1L);
instances = this.instanceService.getAllForInstrumentScientist(user1, filter, null, null);
assertEquals(8, instances.size());

filter = new InstanceFilter().instrumentId(2L);
filter = new InstanceFilter();
filter.setInstrumentId(2L);
instances = this.instanceService.getAllForInstrumentScientist(user1, filter, null, null);
assertEquals(0, instances.size());
}
Expand All @@ -305,19 +310,23 @@ public void instancesAllForScientificSupport() {
@Test
@DisplayName("Get all instances for instrument control support with filters")
public void instancesAllForScientificSupportWithFilters() {
InstanceFilter filter = new InstanceFilter().name("Instance 1");
InstanceFilter filter = new InstanceFilter();
filter.setNameLike("Instance 1");
List<Instance> instances = this.instanceService.getAllForInstrumentControlSupport(filter, null, null);
assertEquals(2 , instances.size());

filter = new InstanceFilter().id(1008L);
filter = new InstanceFilter();
filter.setId(1008L);
instances = this.instanceService.getAllForInstrumentControlSupport(filter, null, null);
assertEquals(1 , instances.size());

filter = new InstanceFilter().owner("1");
filter = new InstanceFilter();
filter.setOwnerId("1");
instances = this.instanceService.getAllForInstrumentControlSupport(filter, null, null);
assertEquals(1 , instances.size());

filter = new InstanceFilter().instrumentId(1L);
filter = new InstanceFilter();
filter.setInstrumentId(1L);
instances = this.instanceService.getAllForInstrumentControlSupport(filter, null, null);
assertEquals(6 , instances.size());
}
Expand Down

This file was deleted.

This file was deleted.

22 changes: 0 additions & 22 deletions visa-core/src/main/java/eu/ill/visa/core/domain/UserFilter.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package eu.ill.visa.core.domain.filters;


import eu.ill.visa.core.entity.enumerations.InstanceState;
import jakarta.ws.rs.QueryParam;

public class InstanceFilter {

@QueryParam("id")
private Long id;

@QueryParam("nameLike")
private String nameLike;

@QueryParam("instrumentId")
private Long instrumentId;

@QueryParam("imageId")
private Long imageId;

@QueryParam("flavourId")
private Long flavourId;

@QueryParam("state")
private InstanceState state;

@QueryParam("ownerId")
private String ownerId;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNameLike() {
return nameLike;
}

public void setNameLike(String nameLike) {
this.nameLike = nameLike;
}

public Long getInstrumentId() {
return instrumentId;
}

public void setInstrumentId(Long instrumentId) {
this.instrumentId = instrumentId;
}

public Long getImageId() {
return imageId;
}

public void setImageId(Long imageId) {
this.imageId = imageId;
}

public Long getFlavourId() {
return flavourId;
}

public void setFlavourId(Long flavourId) {
this.flavourId = flavourId;
}

public InstanceState getState() {
return state;
}

public void setState(InstanceState state) {
this.state = state;
}

public String getOwnerId() {
return ownerId;
}

public void setOwnerId(String ownerId) {
this.ownerId = ownerId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import eu.ill.preql.FilterQuery;
import eu.ill.visa.core.domain.*;
import eu.ill.visa.core.domain.filters.InstanceFilter;
import eu.ill.visa.core.entity.Instance;
import eu.ill.visa.core.entity.InstanceThumbnail;
import eu.ill.visa.core.entity.User;
Expand Down Expand Up @@ -371,18 +372,18 @@ private <T> TypedQuery<T> createFilteredQuery(String queryString, InstanceFilter
queryString += " AND i.id = :id";
queryParameters.add(new SimpleEntry<>("id", filter.getId()));
}
if (filter != null && filter.getName() != null) {
if (filter != null && filter.getNameLike() != null) {
queryString += " AND LOWER(i.name) like LOWER(:name)";
queryParameters.add(new SimpleEntry<>("name", filter.getName() + "%"));
queryParameters.add(new SimpleEntry<>("name", filter.getNameLike() + "%"));
}
if (filter != null && filter.getInstrumentId() != null) {
queryString += " AND instr.id = :instrId";
queryParameters.add(new SimpleEntry<>("instrId", filter.getInstrumentId()));
}
if (filter != null && filter.getOwner() != null) {
if (filter != null && filter.getOwnerId() != null) {
queryString += " AND owner.id = :owner";

queryParameters.add(new SimpleEntry<>("owner", filter.getOwner()));
queryParameters.add(new SimpleEntry<>("owner", filter.getOwnerId()));
}

if (orderBy != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package eu.ill.visa.web.graphql.types;

import eu.ill.visa.core.domain.ProtocolStatus;
import jakarta.validation.constraints.NotNull;
import org.eclipse.microprofile.graphql.Type;

Expand All @@ -10,11 +9,6 @@ public class ProtocolStatusType {
private final @NotNull ImageProtocolType protocol;
private final @NotNull Boolean active;

public ProtocolStatusType(final ProtocolStatus status) {
this.protocol = status.getProtocol() == null ? null : new ImageProtocolType(status.getProtocol());
this.active = status.getActive();
}

public ProtocolStatusType(final ImageProtocolType protocol, Boolean active) {
this.protocol = protocol;
this.active = active;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import eu.ill.visa.business.notification.EmailManager;
import eu.ill.visa.business.services.*;
import eu.ill.visa.core.domain.InstanceFilter;
import eu.ill.visa.core.domain.filters.InstanceFilter;
import eu.ill.visa.core.domain.OrderBy;
import eu.ill.visa.core.domain.Pagination;
import eu.ill.visa.core.entity.*;
Expand Down Expand Up @@ -152,19 +152,15 @@ public MetaResponse<List<ExperimentDto>> getAllExperiments(@Context final Securi
@GET
@Path("/support")
public MetaResponse<List<InstanceDto>> getAllForSupport(@Context final SecurityContext securityContext,
@QueryParam("id") final Long instanceId,
@QueryParam("name") final String instanceName,
@QueryParam("owner") final String owner,
@QueryParam("instrumentId") final Long instrumentId,
@QueryParam("page") @DefaultValue("1") @Min(1) final Integer page,
@QueryParam("limit") @DefaultValue("25") @Min(5) @Max(100) final Integer limit,
@QueryParam("orderBy") @DefaultValue("id") final String orderByValue,
@QueryParam("descending") @DefaultValue("false") final boolean descending) {
@BeanParam InstanceFilter filter,
@QueryParam("page") @DefaultValue("1") @Min(1) final Integer page,
@QueryParam("limit") @DefaultValue("25") @Min(5) @Max(100) final Integer limit,
@QueryParam("orderBy") @DefaultValue("id") final String orderByValue,
@QueryParam("descending") @DefaultValue("false") final boolean descending) {
final User user = this.getUserPrincipal(securityContext);

final int offset = (page - 1) * limit;

final InstanceFilter filter = new InstanceFilter(instanceId, owner, instanceName, instrumentId);
final Pagination pagination = new Pagination(limit, offset);
final OrderBy orderBy = new OrderBy(orderByValue, !descending);
final Long total = instanceService.countAllForSupportUser(user, filter);
Expand Down

0 comments on commit 4063cdc

Please sign in to comment.