diff --git a/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java b/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java index fda1065405516adde4a0118955571469e1d75a76..3af0bd4ddce4ee4c59a47746684e746ecc57f364 100644 --- a/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java +++ b/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java @@ -6,6 +6,8 @@ import cz.muni.pa165.common_library.dtos.CarComponentDto; import cz.muni.pa165.common_library.dtos.CarRequestDto; import cz.muni.pa165.common_library.dtos.CarResponseDto; import io.swagger.v3.oas.annotations.Operation; + +import java.util.ArrayList; import java.util.List; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -80,10 +82,28 @@ public class CarComponentPairController { * @return List of components. */ @Operation(summary = "Get all components from component repo") - @GetMapping(path = "/getcomponents", + @GetMapping(path = "/getStoredComponentsOfType", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity<List<CarComponentDto>> getAllCarComponents() { - return ResponseEntity.ok(DbGetter.getAllComponentsFromDb()); + public ResponseEntity<List<CarComponentDto>> getAllCarComponents(@RequestParam Long carId, @RequestParam Long componentId) { + List<CarComponentDto> allComponents = DbGetter.getAllComponentsFromDb(); + var carComponentsResponse = getAllComponentsOfCar(carId); + var carComponents = carComponentsResponse.getBody(); + CarComponentDto requestedComponent = null; + assert carComponents != null; + for (CarComponentDto carComponent: allComponents) { + if (carComponent.getId().equals(componentId)) { + requestedComponent = carComponent; + break; + } + } + assert requestedComponent != null; + List<CarComponentDto> allViableReplacements = new ArrayList<>(); + for (CarComponentDto carComponent: allComponents) { + if (carComponent.getName().equals(requestedComponent.getName()) && !carComponent.getId().equals(componentId)) { + allViableReplacements.add(carComponent); + } + } + return ResponseEntity.ok(allViableReplacements); }