diff --git a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java index f74ef5c4d9b62628e37ffd4d8d397dfbe79fb3a6..49289df3d04de0c901bceff43ec0947c54d2a472 100644 --- a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java +++ b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/controller/ArtefactoController.java @@ -7,10 +7,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @RestController public class ArtefactoController { @@ -25,4 +28,15 @@ public class ArtefactoController { if(artefactos.isEmpty()) return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); return ResponseEntity.ok(artefactos); } + + @GetMapping("/artefacte/{id}") + @ResponseBody + public ResponseEntity<Artefacto> getArtefactoById(@PathVariable int id) { + Artefacto artefacto = artefactoService.getArtefactosbyId(id); + if (artefacto == null) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); // Responde con 404 si no se encuentra + } + return ResponseEntity.ok(artefacto); // Responde con 200 OK si se encuentra + } + } diff --git a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java index c780ac3efd935e150a2911af41bf27e76e8a2594..5c62e211640336d5b40aa7a3aae217feb018a7e8 100644 --- a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java +++ b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/model/Artefacto.java @@ -27,6 +27,9 @@ public class Artefacto { this.estado = estado; } + public Artefacto(){ + + } public int getId() { return id; } diff --git a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java index 03bc6ff492fd456046a3015be41561d4f3767bff..16af6126c6cb53245512aa461d28716d3fb916d1 100644 --- a/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java +++ b/ABP_Geocatcher/src/main/java/ABP_Geocatcher/service/ArtefactoService.java @@ -14,24 +14,39 @@ import java.util.List; @Service public class ArtefactoService { + private final List<Artefacto> artefactos = new ArrayList<>(); + @Autowired private ArtefactoRepository artefactoRepository; + public ArtefactoService() { + // Crear ubicación de ejemplo + Ubicacion ubicacion = new Ubicacion(1, "Barcelona", "En centro", 1); + + // Crear lista de artefactos simulados + artefactos.add(new Artefacto(1, "Juguetes", "Juguetes de niños", ubicacion, 1)); + artefactos.add(new Artefacto(2, "Libro antiguo", "Libro del siglo XVIII", ubicacion, 1)); + } + public ResponseEntity postArtefacte(Artefacto artefacto){ artefactoRepository.save(artefacto); return ResponseEntity.status(HttpStatus.CREATED).build(); } + public List<Artefacto> getArtefactos() { - // Crear ubicación de ejemplo - Ubicacion ubicacion = new Ubicacion(1, "Barcelona", "En centro", 1); + return artefactos; + } + public Artefacto getArtefactosbyId(int id) { // Crear lista de artefactos - List<Artefacto> artefactos = new ArrayList<>(); - artefactos.add(new Artefacto(1, "Juguetes", "Juguetes de niños", ubicacion, 1)); - artefactos.add(new Artefacto(2, "Libro antiguo", "Libro del siglo XVIII", ubicacion, 1)); + for(Artefacto artefacto: artefactos){ + if(artefacto.getId() == id){ + return artefacto; + } + } - return artefactos; + return null; }