From d42c0ea03d974aa78323bf7161f1d56c39fbd239 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Thu, 26 Aug 2021 14:37:28 -0600 Subject: [PATCH 1/2] Make teamId optional and use componentId for lookup --- .../repository/FeatureRepositoryCustom.java | 13 ++++++++- .../repository/FeatureRepositoryImpl.java | 28 +++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryCustom.java b/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryCustom.java index 940db61..c135e18 100644 --- a/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryCustom.java +++ b/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryCustom.java @@ -1,6 +1,7 @@ package com.capitalone.dashboard.repository; import java.util.List; +import java.util.Set; import org.bson.types.ObjectId; @@ -51,5 +52,15 @@ public interface FeatureRepositoryCustom { * @return */ List findByDate(List teamId, String startDate, String endDate); - + + /** + * Find all features between two dates + * + * @param collectorIds + * @param startDate + * @param endDate + * @return + */ + List findByDate(Set collectorIds, String startDate, String endDate); + } diff --git a/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryImpl.java b/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryImpl.java index e51c68f..ed68c0e 100644 --- a/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryImpl.java +++ b/src/main/java/com/capitalone/dashboard/repository/FeatureRepositoryImpl.java @@ -1,8 +1,6 @@ package com.capitalone.dashboard.repository; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; import javax.xml.bind.DatatypeConverter; @@ -127,6 +125,30 @@ public class FeatureRepositoryImpl implements FeatureRepositoryCustom { return operations.find(query, Feature.class); } + @Override + public List findByDate(Set collectorIds, String startDate, String endDate) { + boolean startDateTimeValid = isValidDate(startDate); + boolean endDateTimeValid = isValidDate(endDate); + + Criteria criteria = Criteria.where("isDeleted").is("False"); + Criteria collectorCriteria = new Criteria(); + for(ObjectId collectorId : collectorIds) { + collectorCriteria.orOperator(Criteria.where("collectorId").is(collectorId)); + } + criteria.andOperator(collectorCriteria); + + if (startDateTimeValid && endDateTimeValid) { + criteria = criteria.andOperator(Criteria.where("changeDate").gt(startDate), Criteria.where("changeDate").lt(endDate)); + } else if (startDateTimeValid){ + criteria = criteria.andOperator(Criteria.where("changeDate").gt(startDate)); + } else { + criteria = criteria.andOperator(Criteria.where("changeDate").gt(getDefaultDate())); + } + Query query = new Query(criteria); + + return operations.find(query, Feature.class); + } + protected boolean isValidDate(String date) { try { DatatypeConverter.parseDateTime(date); -- GitLab From 9993910b6b94cddad6c99d0274eb28527716e76d Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Wed, 8 Sep 2021 14:01:36 +0000 Subject: [PATCH 2/2] Update version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7679711..20c9072 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ com.capitalone.dashboard core-p1 jar - 3.15.15B-SNAPSHOT + 3.15.15C-SNAPSHOT ${project.groupId}:${project.artifactId} Core package shared by API layer and Microservices https://github.com/Hygieia/hygieia-core -- GitLab