From 1139f92d541dbc940a482265a67976b21bbb6ffc Mon Sep 17 00:00:00 2001 From: George Nash Date: Tue, 11 Feb 2025 15:35:01 +0000 Subject: [PATCH] queries for creating or updating affiliations in the registry now explicitly don't include deprecated / deactivated status --- .../impl/AssertionRepositoryCustomImpl.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java b/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java index eb23af590..41b576362 100644 --- a/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java +++ b/assertion-service/src/main/java/org/orcid/memberportal/service/assertion/repository/impl/AssertionRepositoryCustomImpl.java @@ -25,6 +25,7 @@ import com.mongodb.client.DistinctIterable; import com.mongodb.client.model.Filters; +import org.springframework.util.Assert; @Repository public class AssertionRepositoryCustomImpl implements AssertionRepositoryCustom { @@ -60,7 +61,13 @@ public List findAllToUpdateInOrcidRegistry(Pageable pageable) { Criteria needsUpdatingInOrcid = new Criteria(); needsUpdatingInOrcid.orOperator(modifiedAfterUpdateInOrcid, modifiedAfterAddingToOrcidAndUpdateInOrcidNotSet); - MatchOperation matchUpdatedAfterSync = Aggregation.match(needsUpdatingInOrcid); + Criteria notDeprecatedOrDeactivated = new Criteria(); + notDeprecatedOrDeactivated.andOperator(Criteria.where("status").ne(AssertionStatus.RECORD_DEACTIVATED_OR_DEPRECATED.name())); + + Criteria needsUpdatingInOrcidAndNotDeprecatedOrDeactivated = new Criteria(); + needsUpdatingInOrcidAndNotDeprecatedOrDeactivated.andOperator(needsUpdatingInOrcid, notDeprecatedOrDeactivated); + + MatchOperation matchUpdatedAfterSync = Aggregation.match(needsUpdatingInOrcidAndNotDeprecatedOrDeactivated); // pagination aggregation operations SortOperation sort = new SortOperation(pageable.getSort()); @@ -85,9 +92,16 @@ public List getMemberAssertionStatusCounts() { @Override public List findAllToCreateInOrcidRegistry(Pageable pageable) { - Criteria criteria = new Criteria(); - criteria.orOperator(Criteria.where("added_to_orcid").exists(false), Criteria.where("added_to_orcid").is(null)); - Query query = new Query(criteria); + Criteria notAddedToOrcid = new Criteria(); + notAddedToOrcid.orOperator(Criteria.where("added_to_orcid").exists(false), Criteria.where("added_to_orcid").is(null)); + + Criteria notDeprecatedOrDeactivated = new Criteria(); + notDeprecatedOrDeactivated.andOperator(Criteria.where("status").ne(AssertionStatus.RECORD_DEACTIVATED_OR_DEPRECATED.name())); + + Criteria notAddedToOrcidAndNotDeprecatedOrDeactivated = new Criteria(); + notAddedToOrcidAndNotDeprecatedOrDeactivated.andOperator(notAddedToOrcid, notDeprecatedOrDeactivated); + + Query query = new Query(notAddedToOrcidAndNotDeprecatedOrDeactivated); query.with(pageable); return mongoTemplate.find(query, Assertion.class); }