View Javadoc
1   package de.dlr.shepard.common.search.services;
2   
3   import de.dlr.shepard.auth.users.io.UserGroupIO;
4   import de.dlr.shepard.common.search.daos.SearchDAO;
5   import de.dlr.shepard.common.search.io.UserGroupSearchBody;
6   import de.dlr.shepard.common.search.io.UserGroupSearchResult;
7   import de.dlr.shepard.common.search.query.Neo4jQueryBuilder;
8   import de.dlr.shepard.common.search.query.QueryValidator;
9   import de.dlr.shepard.common.util.Constants;
10  import jakarta.enterprise.context.RequestScoped;
11  import jakarta.inject.Inject;
12  
13  @RequestScoped
14  public class UserGroupSearchService {
15  
16    @Inject
17    SearchDAO searchDAO;
18  
19    public UserGroupSearchResult search(UserGroupSearchBody userGroupSearchBody) {
20      String selectionQuery = Neo4jQueryBuilder.userGroupSelectionQuery(userGroupSearchBody.getSearchParams().getQuery());
21      QueryValidator.checkQuery(userGroupSearchBody.getSearchParams().getQuery());
22      var userGroups = searchDAO.findUserGroups(selectionQuery, Constants.USERGROUP_IN_QUERY);
23      var userGroupsIO = userGroups.stream().map(UserGroupIO::new).toArray(UserGroupIO[]::new);
24      return new UserGroupSearchResult(userGroupsIO, userGroupSearchBody.getSearchParams());
25    }
26  }