diff --git a/src/main/java/telraam/api/MonitoringResource.java b/src/main/java/telraam/api/MonitoringResource.java index dc678a7..0a925ea 100644 --- a/src/main/java/telraam/api/MonitoringResource.java +++ b/src/main/java/telraam/api/MonitoringResource.java @@ -70,8 +70,8 @@ public Map> getTeamDetectionTimes() { @GET @Path("/stations-latest-detection-time") - @ApiOperation(value = "Get the map of all station ID's to time since last detection") - public Map getStationIDToLatestDetectionTimeMap() { + @ApiOperation(value = "Get the map of all station name to time since last detection") + public Map getStationIDToLatestDetectionTimeMap() { return stationDetectionManager.timeSinceLastDetectionPerStation(); } diff --git a/src/main/java/telraam/monitoring/StationDetectionManager.java b/src/main/java/telraam/monitoring/StationDetectionManager.java index 7de5274..aca26da 100644 --- a/src/main/java/telraam/monitoring/StationDetectionManager.java +++ b/src/main/java/telraam/monitoring/StationDetectionManager.java @@ -19,17 +19,15 @@ public StationDetectionManager(DetectionDAO detectionDAO, StationDAO stationDAO) this.stationDAO = stationDAO; } - public Map timeSinceLastDetectionPerStation() { + public Map timeSinceLastDetectionPerStation() { List stationIdList = stationDAO.getAll().stream().map(Station::getId).toList(); - Map stationIdToTimeSinceLatestDetection = new HashMap<>(); + Map stationIdToTimeSinceLatestDetection = new HashMap<>(); for (Integer stationId : stationIdList) { Optional maybeDetection = this.detectionDAO.latestDetectionByStationId(stationId); - - if (maybeDetection.isPresent()) { + Optional maybeStation = this.stationDAO.getById(stationId); + if (maybeDetection.isPresent() && maybeStation.isPresent()) { Long time = maybeDetection.get().getTimestamp().getTime(); - stationIdToTimeSinceLatestDetection.put(stationId, (System.currentTimeMillis() - time)/1000); - } else { - stationIdToTimeSinceLatestDetection.put(stationId, null); + stationIdToTimeSinceLatestDetection.put(maybeStation.get().getName(), (System.currentTimeMillis() - time)/1000); } } return stationIdToTimeSinceLatestDetection;