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 }