diff --git a/src/main/java/org/breedinginsight/brapi/v2/model/request/query/ExperimentQuery.java b/src/main/java/org/breedinginsight/brapi/v2/model/request/query/ExperimentQuery.java index 04da564bf..b4c08c31f 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/model/request/query/ExperimentQuery.java +++ b/src/main/java/org/breedinginsight/brapi/v2/model/request/query/ExperimentQuery.java @@ -15,6 +15,8 @@ public class ExperimentQuery extends BrapiQuery { private String name; private String active; + private String createdBy; + private String createdDate; public SearchRequest constructSearchRequest() { List filters = new ArrayList<>(); @@ -24,6 +26,12 @@ public SearchRequest constructSearchRequest() { if (!StringUtils.isBlank(getActive())) { filters.add(constructFilterRequest("active", getActive())); } + if (!StringUtils.isBlank(getCreatedBy())) { + filters.add(constructFilterRequest("createdBy", getCreatedBy())); + } + if (!StringUtils.isBlank(getCreatedDate())) { + filters.add(constructFilterRequest("createdDate", getCreatedDate())); + } return new SearchRequest(filters); } } diff --git a/src/main/java/org/breedinginsight/utilities/response/mappers/ExperimentQueryMapper.java b/src/main/java/org/breedinginsight/utilities/response/mappers/ExperimentQueryMapper.java index 6452d1161..d6c05c41e 100644 --- a/src/main/java/org/breedinginsight/utilities/response/mappers/ExperimentQueryMapper.java +++ b/src/main/java/org/breedinginsight/utilities/response/mappers/ExperimentQueryMapper.java @@ -17,6 +17,7 @@ package org.breedinginsight.utilities.response.mappers; +import com.google.gson.JsonObject; import lombok.Getter; import org.brapi.v2.model.core.BrAPITrial; import org.breedinginsight.api.v1.controller.metadata.SortOrder; @@ -37,7 +38,13 @@ public class ExperimentQueryMapper extends AbstractQueryMapper { public ExperimentQueryMapper() { fields = Map.ofEntries( Map.entry("name", BrAPITrial::getTrialName), - Map.entry("active", BrAPITrial::isActive) + Map.entry("active", BrAPITrial::isActive), + Map.entry("createdDate", + brAPITrial -> brAPITrial.getAdditionalInfo().get("createdDate").getAsString()), + Map.entry("createdBy", + brAPITrial -> brAPITrial.getAdditionalInfo() + .get("createdBy").getAsJsonObject() + .get("userName").getAsString()) ); } @@ -51,4 +58,6 @@ public boolean exists(String fieldName) { if (fields.containsKey(fieldName)) return fields.get(fieldName); else throw new NullPointerException(); } + + }