diff --git a/src/main/java/ch/naviqore/app/controller/RoutingController.java b/src/main/java/ch/naviqore/app/controller/RoutingController.java index 46b2fd04..4ba0573f 100644 --- a/src/main/java/ch/naviqore/app/controller/RoutingController.java +++ b/src/main/java/ch/naviqore/app/controller/RoutingController.java @@ -102,6 +102,7 @@ public List getConnections(@RequestParam(required = false) String so } else if (targetStop != null) { return map(service.getConnections(sourceCoordinate, targetStop, dateTime, map(timeType), config)); } else { + RoutingRequestValidator.validateCoordinates(sourceCoordinate, targetCoordinate); return map(service.getConnections(sourceCoordinate, targetCoordinate, dateTime, map(timeType), config)); } } catch (ConnectionRoutingException e) { diff --git a/src/main/java/ch/naviqore/app/controller/RoutingRequestValidator.java b/src/main/java/ch/naviqore/app/controller/RoutingRequestValidator.java index d3dc520b..6ff2da2e 100644 --- a/src/main/java/ch/naviqore/app/controller/RoutingRequestValidator.java +++ b/src/main/java/ch/naviqore/app/controller/RoutingRequestValidator.java @@ -100,4 +100,11 @@ public static void validateStops(String sourceStopId, String targetStopId) { } } + public static void validateCoordinates(GeoCoordinate sourceCoordinate, GeoCoordinate targetCoordinate) { + if (sourceCoordinate.equals(targetCoordinate)) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, + "The source and target coordinates cannot be the same. Please provide different coordinates for the source and target."); + } + } + }