Se realizan los servicios de ModelUzyTavActProy

parent 87565341
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActProy;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActProy.IServiceUzyTavActProy;
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 + "/actproy")
public class UzyTavActProyController {
private final IServiceUzyTavActProy serviceUzyTavActProy;
public UzyTavActProyController(IServiceUzyTavActProy serviceUzyTavActProy) {
this.serviceUzyTavActProy = serviceUzyTavActProy;
}
@GetMapping("/exampleFindId/{id}")
public DtoUzyTavActProy ListarPorID(@PathVariable Long id) {
return serviceUzyTavActProy.ListarPorID(id);
}
@GetMapping("/getAll")
public List<DtoUzyTavActProy> ListarRegistros() {
return serviceUzyTavActProy.ListarRegistros();
}
@PostMapping("/guardar")
public DtoUzyTavActProy guardar(@Valid @RequestBody DtoUzyTavActProy dtoUzyTavActProy) {
return serviceUzyTavActProy.guardar(dtoUzyTavActProy);
}
@PutMapping("/editar/{id}")
public DtoUzyTavActProy editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTavActProy dtoUzyTavActProy) {
return serviceUzyTavActProy.editar(id, dtoUzyTavActProy);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id) {
boolean eliminado = serviceUzyTavActProy.eliminar(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
}
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActProy;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavActProy;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzytavObjetivoPrograma;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class UzyTavActProyMapper {
private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavActProyMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper;
this.entityManager = entityManager;
}
public DtoUzyTavActProy entityToDto(ModelUzyTavActProy entity) {
return modelMapper.map(entity, DtoUzyTavActProy.class);
}
public ModelUzyTavActProy dtoToEntity(DtoUzyTavActProy dto) {
ModelUzyTavActProy entity = modelMapper.map(dto, ModelUzyTavActProy.class);
Long ObjetivoID = dto.getUzytavobjetivo_programa_id();
if(ObjetivoID !=null){
ModelUzytavObjetivoPrograma objetivoPrograma = entityManager.find(ModelUzytavObjetivoPrograma.class,ObjetivoID );
entity.setUzytavobjetivoPrograma(objetivoPrograma);
}
return entity;
}
public List<DtoUzyTavActProy> entitiesToDtos(List<ModelUzyTavActProy> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
}
......@@ -16,6 +16,8 @@ import java.util.Set;
public class ModelUzyTavActProy {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavactproy_seq")
@SequenceGenerator(name = "uzytavactproy_seq", sequenceName = "SEQ_UZYTAVACTPROY", allocationSize = 1)
@Column(name = "uzytavactproy_id")
private Long uzytavactproy_id;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActProy;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActProy;
import java.util.List;
public interface IServiceUzyTavActProy {
DtoUzyTavActProy ListarPorID(Long id);
List<DtoUzyTavActProy> ListarRegistros();
DtoUzyTavActProy guardar(DtoUzyTavActProy dtoUzyTavActProy);
DtoUzyTavActProy editar(Long id, DtoUzyTavActProy dtoUzyTavActProy);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActProy;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavActProy;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActProy;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavActProyMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavActProy;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavActProy implements IServiceUzyTavActProy {
private final DaoUzyTavActProy daoUzyTavActProy;
private final UzyTavActProyMapper mapper;
private static final String MESSAGE = "No se encontró el registro con ID: ";
public ServiceUzyTavActProy(DaoUzyTavActProy daoUzyTavActProy, UzyTavActProyMapper mapper) {
this.daoUzyTavActProy = daoUzyTavActProy;
this.mapper = mapper;
}
@Override
public DtoUzyTavActProy ListarPorID(Long id) {
if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
ModelUzyTavActProy entity = daoUzyTavActProy.findById(id)
.orElseThrow(() -> new ResourceNotFoundException(MESSAGE + 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<DtoUzyTavActProy> ListarRegistros() {
try {
List<ModelUzyTavActProy> entities = daoUzyTavActProy.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
}
@Override
public DtoUzyTavActProy guardar(DtoUzyTavActProy dtoUzyTavActProy) {
try {
ModelUzyTavActProy entity = mapper.dtoToEntity(dtoUzyTavActProy);
ModelUzyTavActProy nuevoEntity = daoUzyTavActProy.save(entity);
return mapper.entityToDto(nuevoEntity);
} catch (DataIntegrityViolationException ex) {
throw ex;
} catch (Exception ex) {
// Manejo para otras excepciones
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
}
@Override
public DtoUzyTavActProy editar(Long id, DtoUzyTavActProy dtoUzyTavActProy) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavActProy entity = daoUzyTavActProy.findById(id)
.orElseThrow(() -> new ResourceNotFoundException(MESSAGE + id));
if (entity != null) {
if (dtoUzyTavActProy.getUzytavactproy_fech_regis() != null) {
entity.setUzytavactproy_fech_regis(dtoUzyTavActProy.getUzytavactproy_fech_regis());
}
if (dtoUzyTavActProy.getUzytavactproy_observa() != null) {
entity.setUzytavactproy_observa(dtoUzyTavActProy.getUzytavactproy_observa());
}
ModelUzyTavActProy updatedEntity = daoUzyTavActProy.save(entity);
return mapper.entityToDto(updatedEntity);
} else {
throw new ResourceNotFoundException(MESSAGE + id);
}
} catch (Exception e) {
throw new RuntimeException("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 {
ModelUzyTavActProy entity = daoUzyTavActProy.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTavActProy.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