private List<IpNameResponse> searchByIP(String ip) { Set<IpNameResponse> res = new HashSet<>(); int counter = 0; for (User user : userDao.users.values()) { if (user.lastLoggedIP != null) { String name = user.email + "-" + user.appName; if (ip == null) { res.add(new IpNameResponse(counter++, name, user.lastLoggedIP, "app")); for (DashBoard dashBoard : user.profile.dashBoards) { for (Device device : dashBoard.devices) { if (device.lastLoggedIP != null) { res.add(new IpNameResponse(counter++, name, device.lastLoggedIP, "hard")); } } } } else { if (user.lastLoggedIP.contains(ip) || deviceContains(user, ip)) { res.add(new IpNameResponse(counter++, name, user.lastLoggedIP, "hard")); } } } } return new ArrayList<>(res); }
@GET @Path("/ips") public Response getIps(@QueryParam("_filters") String filterParam, @QueryParam("_page") int page, @QueryParam("_perPage") int size, @QueryParam("_sortField") String sortField, @QueryParam("_sortDir") String sortOrder) { if (filterParam != null) { IpFilter filter = JsonParser.readAny(filterParam, IpFilter.class); filterParam = filter == null ? null : filter.ip; } return ok(sort(searchByIP(filterParam), sortField, sortOrder)); }
var statsLogic = new StatsLogic(holder, rootPath); var configsLogic = new ConfigsLogic(holder, rootPath); var hardwareStatsLogic = new HardwareStatsLogic(holder, rootPath);