This repository has been archived on 2026-03-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Progetto-m152-Java/src/main/java/ch/progetto152/controller/WaypointController.java

81 lines
3.1 KiB
Java

package ch.progetto152.controller;
import ch.progetto152.entity.WaypointsEntity;
import ch.progetto152.services.WaypointService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/progetto152/waypoint")
public class WaypointController {
private final WaypointService waypointService;
@Autowired
public WaypointController(WaypointService waypointService) {
this.waypointService = waypointService;
}
@GetMapping("/{location}")
public ResponseEntity<List<WaypointsEntity>> getAllWaypoints(@PathVariable("location") String location) {
List<WaypointsEntity> waypoint = waypointService.getAllWaypointsByLocation(location);
return new ResponseEntity<>(waypoint, HttpStatus.OK);
}
@GetMapping("/{location}/{id}")
public ResponseEntity<WaypointsEntity> getWaypointById(@PathVariable("location") String location, @PathVariable("id") Long id) {
WaypointsEntity waypoint = waypointService.getWaypointById(id);
if (waypoint != null) {
if (waypoint.getLocationName().equals(location)) {
return new ResponseEntity<>(waypoint, HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@GetMapping("/id/{id}")
public ResponseEntity<WaypointsEntity> getWaypointById(@PathVariable("id") Long id) {
WaypointsEntity waypoint = waypointService.getWaypointById(id);
if (waypoint != null) {
return new ResponseEntity<>(waypoint, HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@PostMapping("")
public ResponseEntity<WaypointsEntity> createWaypoint(@RequestBody WaypointsEntity waypoint) {
WaypointsEntity createdWaypoint = waypointService.createWaypoint(waypoint);
if (createdWaypoint == null) {
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<>(createdWaypoint, HttpStatus.CREATED);
}
@PutMapping("/{id}")
public ResponseEntity<WaypointsEntity> updateWaypoint(@PathVariable("id") Long id, @RequestBody WaypointsEntity waypoint) {
WaypointsEntity updatedWaypoint = waypointService.updateWaypoint(id, waypoint);
if (updatedWaypoint != null) {
return new ResponseEntity<>(updatedWaypoint, HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteWaypoint(@PathVariable("id") Long id) {
boolean deleted = waypointService.deleteWaypoint(id);
if (deleted) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
}