Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
cleydyr committed Jun 1, 2024
1 parent 14fce39 commit d2b2b35
Showing 1 changed file with 33 additions and 15 deletions.
48 changes: 33 additions & 15 deletions src/main/java/biblivre/circulation/user/IndexableUserDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,43 @@ public class IndexableUserDAO extends UserDAOImpl {
}

private List<Query> getFilterQueries(UserSearchDTO dto) {
List<Query> baseFilterQuries = buildBaseQueries(dto);
var baseFilterTermQueries = buildBaseQueries(dto);

var textQueries = buildTextQueries(dto);

var advancedOptionsQueries = buildAdvancedOptionsQueries(dto);

var filterTermQueries = new ArrayList<>(baseFilterTermQueries);

filterTermQueries.addAll(textQueries);

filterTermQueries.addAll(advancedOptionsQueries);

return Collections.unmodifiableList(filterTermQueries);
}

private List<Query> buildTextQueries(UserSearchDTO dto) {
if (dto.isSearchById()) {
return Collections.singletonList(buildLongTermQuery(dto));
}

return Collections.emptyList();
}

private List<Query> buildBaseQueries(UserSearchDTO dto) {
Query schemaQ = buildStringTermQuery("schema", SchemaThreadLocal.get());

Query tenantQ = buildStringTermQuery("tenant", tenant);

return List.of(schemaQ, tenantQ);
}

private static List<Query> buildAdvancedOptionsQueries(UserSearchDTO dto) {
if (dto.isSimpleSearch()) {
return baseFilterQuries;
return Collections.emptyList();
}

List<Query> filterQueries = new ArrayList<>(baseFilterQuries);
List<Query> filterQueries = new ArrayList<>();

if (dto.isUserCardNeverPrinted()) {
filterQueries.add(buildBooleanTermQuery("userCardPrinted", false));
Expand Down Expand Up @@ -117,21 +147,9 @@ private List<Query> getFilterQueries(UserSearchDTO dto) {
filterQueries.add(buildRangeLteQuery("modified", dto.getModifiedEndDate()));
}

if (dto.isSearchById()) {
filterQueries.add(buildLongTermQuery(dto));
}

return Collections.unmodifiableList(filterQueries);
}

private List<Query> buildBaseQueries(UserSearchDTO dto) {
Query schemaQ = buildStringTermQuery("schema", SchemaThreadLocal.get());

Query tenantQ = buildStringTermQuery("tenant", tenant);

return List.of(schemaQ, tenantQ);
}

private static List<Query> getMustQueries(UserSearchDTO dto) {
return dto.isListAll() ? Collections.emptyList() : List.of(getMustQueryForName(dto));
}
Expand Down

0 comments on commit d2b2b35

Please sign in to comment.