View Javadoc
1   package de.dlr.shepard.auth.users.daos;
2   
3   import de.dlr.shepard.auth.users.entities.UserGroup;
4   import de.dlr.shepard.common.neo4j.daos.GenericDAO;
5   import de.dlr.shepard.common.util.CypherQueryHelper;
6   import de.dlr.shepard.common.util.QueryParamHelper;
7   import jakarta.enterprise.context.RequestScoped;
8   import java.util.ArrayList;
9   import java.util.HashMap;
10  import java.util.List;
11  import java.util.Map;
12  
13  @RequestScoped
14  public class UserGroupDAO extends GenericDAO<UserGroup> {
15  
16    @Override
17    public Class<UserGroup> getEntityType() {
18      return UserGroup.class;
19    }
20  
21    public List<UserGroup> findAllUserGroups(QueryParamHelper params, String username) {
22      Map<String, Object> paramsMap = new HashMap<>();
23      if (params.hasPagination()) {
24        paramsMap.put("offset", params.getPagination().getOffset());
25        paramsMap.put("size", params.getPagination().getSize());
26      }
27      var query = String.format(
28        "MATCH %s WHERE %s WITH ug",
29        CypherQueryHelper.getObjectPart("ug", "UserGroup", false),
30        CypherQueryHelper.getReadableByQuery("ug", username)
31      );
32      if (params.hasOrderByAttribute()) {
33        query += " " + CypherQueryHelper.getOrderByPart("ug", params.getOrderByAttribute(), params.getOrderDesc());
34      }
35      if (params.hasPagination()) {
36        query += " " + CypherQueryHelper.getPaginationPart();
37      }
38      query += " " + CypherQueryHelper.getReturnPart("ug");
39      var result = new ArrayList<UserGroup>();
40      for (var userGroup : findByQuery(query, paramsMap)) {
41        result.add(userGroup);
42      }
43      return result;
44    }
45  }