in graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ProfileConditionFactory.java [92:137]
public Condition profileFilterInputCondition(final CDPProfileFilterInput filterInput, final Map<String, Object> filterInputAsMap) {
if (filterInput == null) {
return matchAllCondition();
}
final List<Condition> rootSubConditions = new ArrayList<>();
if (filterInput.getProfileIDs_contains() != null && !filterInput.getProfileIDs_contains().isEmpty()) {
rootSubConditions.add(propertiesCondition("itemId", "inContains", filterInput.getProfileIDs_contains()));
}
if (filterInput.getSegments_contains() != null && filterInput.getSegments_contains().isEmpty()) {
rootSubConditions.add(ConditionBuilder.create(getConditionType("profileSegmentCondition"))
.parameter("segments", filterInput.getSegments_contains())
.parameter("matchType", "in")
.build());
}
if (filterInput.getConsents_contains() != null && !filterInput.getConsents_contains().isEmpty()) {
rootSubConditions.add(consentContainsCondition(filterInput.getConsents_contains()));
}
if (filterInput.getLists_contains() != null && filterInput.getLists_contains().isEmpty()) {
rootSubConditions.add(ConditionBuilder.create(getConditionType("profileUserListCondition"))
.parameter("lists", filterInput.getLists_contains())
.parameter("matchType", "in")
.build());
}
if (filterInput.getProperties() != null) {
final Map<String, Object> propertiesFilterAsMap = (Map<String, Object>) filterInputAsMap.get("properties");
rootSubConditions.add(profilePropertiesFilterInputCondition(filterInput.getProperties(), propertiesFilterAsMap));
}
if (filterInput.getEvents() != null) {
final Map<String, Object> eventsFilterAsMap = (Map<String, Object>) filterInputAsMap.get("events");
rootSubConditions.add(profileEventsFilterInputCondition(filterInput.getEvents(), eventsFilterAsMap));
}
if (filterInput.getInterests() != null) {
rootSubConditions.add(interestFilterInputCondition(filterInput.getInterests()));
}
return booleanCondition("and", rootSubConditions);
}