package ec.edu.espe.movilidad.MovilidadWS.Controller; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavProgObj; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavProgObj.IServiceUzyTavProgObj; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION; @RestController @CrossOrigin(origins = "*") @RequestMapping(V1_API_VERSION + "/progObj") public class UzyTavProgObjController { private final IServiceUzyTavProgObj serviceUzyTavProgObj; public UzyTavProgObjController(IServiceUzyTavProgObj serviceUzyTavProgObj) { this.serviceUzyTavProgObj = serviceUzyTavProgObj; } @GetMapping("/exampleFindId/{id}") public ResponseEntity<DtoUzyTavProgObj> ListarPorID(@PathVariable Long id) { return new ResponseEntity<>(serviceUzyTavProgObj.ListarPorID(id), HttpStatus.OK); } @GetMapping("/getAll") public ResponseEntity<List<DtoUzyTavProgObj>> ListarRegistros() { return new ResponseEntity<>(serviceUzyTavProgObj.ListarRegistros(), HttpStatus.OK); } @GetMapping("/registrosRelacionadosConPrograma/{programaId}") public ResponseEntity<List<DtoUzyTavProgObj>> ListarRegistrosRelacionadosConPrograma(@PathVariable Long programaId) { return new ResponseEntity<>(serviceUzyTavProgObj.obtenerTavProgObjPorPrograma(programaId), HttpStatus.OK); } @GetMapping("/registrosRelacionadosConProyecto/{proyectoID}") public ResponseEntity<List<DtoUzyTavProgObj>> ListarRegistrosRelacionadosConProyecto(@PathVariable Long proyectoID) { return new ResponseEntity<>(serviceUzyTavProgObj.obtenerTavProgObjPorProyecto(proyectoID), HttpStatus.OK); } @PostMapping("/guardar") public ResponseEntity<DtoUzyTavProgObj> guardar(@RequestBody DtoUzyTavProgObj dtoUzyTavProgObj) { DtoUzyTavProgObj creado = serviceUzyTavProgObj.guardar(dtoUzyTavProgObj); return ResponseEntity.status(HttpStatus.OK).body(creado); } @PutMapping("/editar/{id}") public ResponseEntity<DtoUzyTavProgObj> editar(@PathVariable Long id, @RequestBody DtoUzyTavProgObj dtoUzyTavProgObj) { return new ResponseEntity<>(serviceUzyTavProgObj.editar(id, dtoUzyTavProgObj), HttpStatus.OK); } @DeleteMapping("/eliminar/{id}") public ResponseEntity<String> eliminar(@PathVariable Long id) { boolean eliminado = serviceUzyTavProgObj.eliminar(id); if (eliminado) { return ResponseEntity.ok("El registro se eliminĂ³ exitosamente."); } else { return ResponseEntity.notFound().build(); } } }