From 2016f35dcb5a2c2a05742e63c2074caf63cbbabf Mon Sep 17 00:00:00 2001 From: js0ny Date: Fri, 21 Nov 2025 18:45:13 +0000 Subject: [PATCH] fix(drones): Change return type of [] ids to String --- .../controller/DroneController.java | 4 ++-- .../ilp_coursework/service/DroneInfoService.java | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/github/js0ny/ilp_coursework/controller/DroneController.java b/src/main/java/io/github/js0ny/ilp_coursework/controller/DroneController.java index cbddc24..e056a49 100644 --- a/src/main/java/io/github/js0ny/ilp_coursework/controller/DroneController.java +++ b/src/main/java/io/github/js0ny/ilp_coursework/controller/DroneController.java @@ -47,7 +47,7 @@ public class DroneController { * @return An array of drone id with cooling capability. */ @GetMapping("/dronesWithCooling/{state}") - public int[] getDronesWithCoolingCapability(@PathVariable boolean state) { + public String[] getDronesWithCoolingCapability(@PathVariable boolean state) { return droneService.dronesWithCooling(state); } @@ -69,7 +69,7 @@ public class DroneController { } @GetMapping("/queryAsPath/{attrName}/{attrVal}") - public int[] getIdByAttrMap( + public String[] getIdByAttrMap( @PathVariable String attrName, @PathVariable String attrVal) { return droneService.dronesWithAttribute(attrName, attrVal); diff --git a/src/main/java/io/github/js0ny/ilp_coursework/service/DroneInfoService.java b/src/main/java/io/github/js0ny/ilp_coursework/service/DroneInfoService.java index dcbe2b8..b7b4a21 100644 --- a/src/main/java/io/github/js0ny/ilp_coursework/service/DroneInfoService.java +++ b/src/main/java/io/github/js0ny/ilp_coursework/service/DroneInfoService.java @@ -40,20 +40,20 @@ public class DroneInfoService { * @return if {@code state} is true, return ids of drones with cooling * capability, else without cooling */ - public int[] dronesWithCooling(boolean state) { + public String[] dronesWithCooling(boolean state) { URI droneUrl = URI.create(baseUrl).resolve(dronesEndpoint); DroneDto[] drones = restTemplate.getForObject( droneUrl, DroneDto[].class); if (drones == null) { - return new int[] {}; + return new String[] {}; } return Arrays.stream(drones) .filter(drone -> drone.capability().cooling() == state) - .mapToInt(drone -> Integer.parseInt(drone.id())) - .toArray(); + .map(DroneDto::id) + .toArray(String[]::new); } /** @@ -94,14 +94,14 @@ public class DroneInfoService { * @param attrVal the attribute value to filter on * @return array of drone ids matching the attribute name and value */ - public int[] dronesWithAttribute(String attrName, String attrVal) { + public String[] dronesWithAttribute(String attrName, String attrVal) { URI droneUrl = URI.create(baseUrl).resolve(dronesEndpoint); DroneDto[] drones = restTemplate.getForObject( droneUrl, DroneDto[].class); if (drones == null) { - return new int[] {}; + return new String[] {}; } // Use Jackson's ObjectMapper to convert DroneDto to JsonNode for dynamic @@ -118,8 +118,8 @@ public class DroneInfoService { return false; } }) - .mapToInt(drone -> Integer.parseInt(drone.id())) - .toArray(); + .map(DroneDto::id) + .toArray(String[]::new); } private boolean isValueMatched(JsonNode node, String attrVal) {