Se realizan los servicios de ModelUzyTavActivProg

parent 739fbd1b
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActivProg;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActivProg.IServiceUzyTavActivProg;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;
@RestController
@CrossOrigin(origins = "*")
@RequestMapping(V1_API_VERSION + "/activprog")
public class UzyTavActivProgController {
private final IServiceUzyTavActivProg serviceUzyTavActivProg;
public UzyTavActivProgController(IServiceUzyTavActivProg serviceUzyTavActivProg) {
this.serviceUzyTavActivProg = serviceUzyTavActivProg;
}
@GetMapping("/exampleFindId/{id}")
public DtoUzyTavActivProg ListarPorID(@PathVariable Long id) {
return serviceUzyTavActivProg.ListarPorID(id);
}
@GetMapping("/getAll")
public List<DtoUzyTavActivProg> ListarRegistros() {
return serviceUzyTavActivProg.ListarRegistros();
}
@PostMapping("/guardar")
public DtoUzyTavActivProg guardar(@Valid @RequestBody DtoUzyTavActivProg dtoUzyTavActivProg) {
return serviceUzyTavActivProg.guardar(dtoUzyTavActivProg);
}
@PutMapping("/editar/{id}")
public DtoUzyTavActivProg editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTavActivProg dtoUzyTavActivProg) {
return serviceUzyTavActivProg.editar(id, dtoUzyTavActivProg);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id) {
boolean eliminado = serviceUzyTavActivProg.eliminar(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
}
...@@ -16,6 +16,8 @@ import java.time.LocalDate; ...@@ -16,6 +16,8 @@ import java.time.LocalDate;
public class ModelUzyTavActivProg { public class ModelUzyTavActivProg {
@Id @Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavactiproy_seq")
@SequenceGenerator(name = "uzytavactiproy_seq", sequenceName = "SEQ_UZYTAVACTIVPROG", allocationSize = 1)
@Column(name = "uzytavactivprog_id") @Column(name = "uzytavactivprog_id")
private Long uzytavactivprog_id; private Long uzytavactivprog_id;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActivProg;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActivProg;
import java.util.List;
public interface IServiceUzyTavActivProg {
DtoUzyTavActivProg ListarPorID(Long id);
List<DtoUzyTavActivProg> ListarRegistros();
DtoUzyTavActivProg guardar(DtoUzyTavActivProg dtoUzyTavActivProg);
DtoUzyTavActivProg editar(Long id, DtoUzyTavActivProg dtoUzyTavActivProg);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActivProg;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavActivProg;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActivProg;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavActivProgMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavActivProg;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavActivProg implements IServiceUzyTavActivProg {
private final DaoUzyTavActivProg daoUzyTavActivProg;
private final UzyTavActivProgMapper mapper;
public ServiceUzyTavActivProg(DaoUzyTavActivProg daoUzyTavActivProg, UzyTavActivProgMapper mapper) {
this.daoUzyTavActivProg = daoUzyTavActivProg;
this.mapper = mapper;
}
@Override
public DtoUzyTavActivProg ListarPorID(Long id) {
if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
ModelUzyTavActivProg entity = daoUzyTavActivProg.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) { // Manejo de cualquier error en el servidor
throw new RuntimeException("Error al buscar el registro con ID: " + id);
}
}
@Override
public List<DtoUzyTavActivProg> ListarRegistros() {
try {
List<ModelUzyTavActivProg> entities = daoUzyTavActivProg.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
}
@Override
public DtoUzyTavActivProg guardar(DtoUzyTavActivProg dtoUzyTavActivProg) {
try {
ModelUzyTavActivProg entity = mapper.dtoToEntity(dtoUzyTavActivProg);
ModelUzyTavActivProg nuevoEntity = daoUzyTavActivProg.save(entity);
return mapper.entityToDto(nuevoEntity);
} catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
}
@Override
public DtoUzyTavActivProg editar(Long id, DtoUzyTavActivProg dtoUzyTavActivProg) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavActivProg entity = daoUzyTavActivProg.findById(id).get();
if (entity != null) {
if (dtoUzyTavActivProg.getUzytavactivprog_descripcion() != null) {
entity.setUzytavactivprog_descripcion(dtoUzyTavActivProg.getUzytavactivprog_descripcion());
}
if (dtoUzyTavActivProg.getUzytavactivprog_fecha_ini() != null) {
entity.setUzytavactivprog_fecha_ini(dtoUzyTavActivProg.getUzytavactivprog_fecha_ini());
}
if (dtoUzyTavActivProg.getUzytavactivprog_fecha_fin() != null) {
entity.setUzytavactivprog_fecha_fin(dtoUzyTavActivProg.getUzytavactivprog_fecha_fin());
}
if (dtoUzyTavActivProg.getUzytavactivprog_presupuesto() != null) {
entity.setUzytavactivprog_presupuesto(dtoUzyTavActivProg.getUzytavactivprog_presupuesto());
}
if (dtoUzyTavActivProg.getUzytavactivprog_beneficiarios() != null) {
entity.setUzytavactivprog_beneficiarios(dtoUzyTavActivProg.getUzytavactivprog_beneficiarios());
}
if (dtoUzyTavActivProg.getUzytavactivprog_anio() != null) {
entity.setUzytavactivprog_anio(dtoUzyTavActivProg.getUzytavactivprog_anio());
}
if (dtoUzyTavActivProg.getUzytavactivprog_presupuesto2() != null) {
entity.setUzytavactivprog_presupuesto2(dtoUzyTavActivProg.getUzytavactivprog_presupuesto2());
}
ModelUzyTavActivProg updatedEntity = daoUzyTavActivProg.save(entity);
return mapper.entityToDto(updatedEntity);
} else {
throw new ResourceNotFoundException("No se encontró el registro con ID: " + id);
}
} catch (Exception e) {
throw new ResourceNotFoundException("Error al editar el registro: " + e.getMessage());
}
}
@Override
public boolean eliminar(Long id) {
if (id == null || id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavActivProg entity = daoUzyTavActivProg.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTavActivProg.delete(entity);
return true;
}
return false;
} catch (ResourceNotFoundException ex) {
throw ex;
} catch (Exception ex) {
throw new RuntimeException("Error al eliminar el registro: " + ex.getMessage());
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment