Se agregan los servicios de ModelUzyTavObjetivosEstraInsti

parent 62d40a92
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavObjetivosEstraInsti;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavObjetivosEstraInsti.IServiceUzyTavObjetivosEstraInsti;
import org.springframework.http.HttpStatus;
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+"/objetivosEstraInsti")
public class UzyTavObjetivosEstraInstiController {
private final IServiceUzyTavObjetivosEstraInsti serviceUzyTavObjetivosEstraInsti;
public UzyTavObjetivosEstraInstiController(IServiceUzyTavObjetivosEstraInsti serviceUzyTavObjetivosEstraInsti) {
this.serviceUzyTavObjetivosEstraInsti = serviceUzyTavObjetivosEstraInsti;
}
@GetMapping("/exampleFindId/{id}")
public ResponseEntity<DtoUzyTavObjetivosEstraInsti> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzyTavObjetivosEstraInsti.ListarPorID(id), HttpStatus.OK);
}
@GetMapping("/obtenerEstraInstiPadre")
public ResponseEntity<List<DtoUzyTavObjetivosEstraInsti>> obtenerEstraInstiPadre() {
return new ResponseEntity<>(serviceUzyTavObjetivosEstraInsti.obtenerEstraInstiPadre(), HttpStatus.OK);
}
@GetMapping("/getAll")
public ResponseEntity<List<DtoUzyTavObjetivosEstraInsti>> ListarRegistros() {
return new ResponseEntity<>(serviceUzyTavObjetivosEstraInsti.ListarRegistros(), HttpStatus.OK);
}
@PostMapping("/guardar")
public ResponseEntity<DtoUzyTavObjetivosEstraInsti> guardar(@Valid @RequestBody DtoUzyTavObjetivosEstraInsti dtoUzyTavObjetivosEstraInsti) {
DtoUzyTavObjetivosEstraInsti savedDto = serviceUzyTavObjetivosEstraInsti.guardar(dtoUzyTavObjetivosEstraInsti);
return ResponseEntity.ok(savedDto);
}
@PutMapping("/editar/{id}")
public ResponseEntity<DtoUzyTavObjetivosEstraInsti> editar(@PathVariable Long id, @RequestBody DtoUzyTavObjetivosEstraInsti dtoUzyTavObjetivosEstraInsti) {
return new ResponseEntity<>(serviceUzyTavObjetivosEstraInsti.editar(id, dtoUzyTavObjetivosEstraInsti), HttpStatus.OK);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id){
boolean eliminado = serviceUzyTavObjetivosEstraInsti.eliminar(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
}
...@@ -2,8 +2,15 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao; ...@@ -2,8 +2,15 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavObjetivosEstraInsti; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavObjetivosEstraInsti;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public interface DaoUzyTavObjetivosEstraInsti extends JpaRepository<ModelUzyTavObjetivosEstraInsti, Long> { public interface DaoUzyTavObjetivosEstraInsti extends JpaRepository<ModelUzyTavObjetivosEstraInsti, Long> {
//Obtener los datos relacionados con el id del padre y ordeados
@Query("SELECT c FROM ModelUzyTavObjetivosEstraInsti c LEFT JOIN c.uzyTavObjetivosEstraInstiPadre p ORDER BY p.UZYTAVOBJETIVOS_ESTRA_INSTI_ID")
List<ModelUzyTavObjetivosEstraInsti> obtenerEstraInstiPadre();
} }
...@@ -7,9 +7,9 @@ public class DtoUzyTavObjetivosEstraInsti { ...@@ -7,9 +7,9 @@ public class DtoUzyTavObjetivosEstraInsti {
private Long UZYTAVOBJETIVOS_ESTRA_INSTI_ID; private Long UZYTAVOBJETIVOS_ESTRA_INSTI_ID;
private Long UZYTAVOBJETIVOS_ESTRA_INSTI_PADRE; private Long UZYTAVOBJETIVOS_ESTRA_INSTI_PADRE;
private DtoUzyTavObjetivosEstraInsti objetivosEstraInstiPADRE; private DtoUzyTavObjetivosEstraInsti uzyTavObjetivosEstraInstiPadre;
private String uzytavobjetivosEstraInstiDescripcion; private String UZYTAVOBJETIVOS_ESTRA_INSTI_DESCRIPCION;
private Long uzyttipestrCode; private Long UZYTTIPESTR_CODE;
private Long UZYTAVCONFOBJ_ID; private Long UZYTAVCONFOBJ_ID;
......
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavObjetivosEstraInsti;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavObjetivosEstraInsti;
import org.modelmapper.ModelMapper;
import org.modelmapper.PropertyMap;
import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class UzyTavObjetivosEstraInstiMapper {
private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavObjetivosEstraInstiMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper;
this.entityManager = entityManager;
configureMappings();
}
public DtoUzyTavObjetivosEstraInsti entityToDto(ModelUzyTavObjetivosEstraInsti entity) {
DtoUzyTavObjetivosEstraInsti dto = modelMapper.map(entity, DtoUzyTavObjetivosEstraInsti.class);
if (entity.getUzyTavObjetivosEstraInstiPadre() != null) {
DtoUzyTavObjetivosEstraInsti padreDto = entityToDto(entity.getUzyTavObjetivosEstraInstiPadre());
dto.setUzyTavObjetivosEstraInstiPadre(padreDto);
}
return dto;
}
public ModelUzyTavObjetivosEstraInsti dtoToEntity(DtoUzyTavObjetivosEstraInsti dto) {
ModelUzyTavObjetivosEstraInsti entity = modelMapper.map(dto, ModelUzyTavObjetivosEstraInsti.class);
if (dto.getUzyTavObjetivosEstraInstiPadre() != null) {
ModelUzyTavObjetivosEstraInsti padre = entityManager.find(
ModelUzyTavObjetivosEstraInsti.class, dto.getUzyTavObjetivosEstraInstiPadre().getUZYTAVOBJETIVOS_ESTRA_INSTI_ID());
entity.setUzyTavObjetivosEstraInstiPadre(padre);
}
return entity;
}
public List<DtoUzyTavObjetivosEstraInsti> entitiesToDtos(List<ModelUzyTavObjetivosEstraInsti> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
private void configureMappings() {
modelMapper.addMappings(new PropertyMap<ModelUzyTavObjetivosEstraInsti, DtoUzyTavObjetivosEstraInsti>() {
@Override
protected void configure() {
map().setUZYTAVOBJETIVOS_ESTRA_INSTI_ID(source.getUZYTAVOBJETIVOS_ESTRA_INSTI_ID());
map().setUZYTAVOBJETIVOS_ESTRA_INSTI_PADRE(source.getUzyTavObjetivosEstraInstiPadre().getUZYTAVOBJETIVOS_ESTRA_INSTI_ID());
map().setUZYTAVCONFOBJ_ID(source.getUzytavconfobj().getUzytavconfobj_id());
}
});
}
}
...@@ -31,10 +31,10 @@ public class ModelUzyTavObjetivosEstraInsti { ...@@ -31,10 +31,10 @@ public class ModelUzyTavObjetivosEstraInsti {
@Size(max = 600) @Size(max = 600)
@Column(name = "UZYTAVOBJETIVOS_ESTRA_INSTI_DESCRIPCION", length = 600) @Column(name = "UZYTAVOBJETIVOS_ESTRA_INSTI_DESCRIPCION", length = 600)
private String uzytavobjetivosEstraInstiDescripcion; private String UZYTAVOBJETIVOS_ESTRA_INSTI_DESCRIPCION;
@Column(name = "UZYTTIPESTR_CODE") @Column(name = "UZYTTIPESTR_CODE")
private Long uzyttipestrCode; private Long UZYTTIPESTR_CODE;
//RELACIÓN CON ModelUzyTavConfObj- TABLA PADRE //RELACIÓN CON ModelUzyTavConfObj- TABLA PADRE
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavObjetivosEstraInsti;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavObjetivosEstraInsti;
import java.util.List;
public interface IServiceUzyTavObjetivosEstraInsti {
DtoUzyTavObjetivosEstraInsti ListarPorID(Long id);
List<DtoUzyTavObjetivosEstraInsti> ListarRegistros();
List<DtoUzyTavObjetivosEstraInsti> obtenerEstraInstiPadre();
DtoUzyTavObjetivosEstraInsti guardar(DtoUzyTavObjetivosEstraInsti dtoUzyTavObjetivosEstraInsti);
DtoUzyTavObjetivosEstraInsti editar( Long id, DtoUzyTavObjetivosEstraInsti dtoUzyTavObjetivosEstraInsti);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavObjetivosEstraInsti;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavObjetivosEstraInsti;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavObjetivosEstraInsti;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavObjetivosEstraInstiMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavObjetivosEstraInsti;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavObjetivosEstraInsti implements IServiceUzyTavObjetivosEstraInsti {
private final DaoUzyTavObjetivosEstraInsti daoUzyTavObjetivosEstraInsti;
private final UzyTavObjetivosEstraInstiMapper mapper;
public ServiceUzyTavObjetivosEstraInsti(DaoUzyTavObjetivosEstraInsti daoUzyTavObjetivosEstraInsti, UzyTavObjetivosEstraInstiMapper mapper) {
this.daoUzyTavObjetivosEstraInsti = daoUzyTavObjetivosEstraInsti;
this.mapper = mapper;
}
@Override
public DtoUzyTavObjetivosEstraInsti ListarPorID(Long id) {
ModelUzyTavObjetivosEstraInsti entity = daoUzyTavObjetivosEstraInsti.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
}
@Override
public List<DtoUzyTavObjetivosEstraInsti> ListarRegistros() {
List<ModelUzyTavObjetivosEstraInsti> entities = daoUzyTavObjetivosEstraInsti.findAll();
return mapper.entitiesToDtos(entities);
}
@Override
public List<DtoUzyTavObjetivosEstraInsti> obtenerEstraInstiPadre() {
List<ModelUzyTavObjetivosEstraInsti> entities = daoUzyTavObjetivosEstraInsti.obtenerEstraInstiPadre();
return mapper.entitiesToDtos(entities);
}
@Override
public DtoUzyTavObjetivosEstraInsti guardar(DtoUzyTavObjetivosEstraInsti dtoUzyTavObjetivosEstraInsti) {
ModelUzyTavObjetivosEstraInsti entity = mapper.dtoToEntity(dtoUzyTavObjetivosEstraInsti);
ModelUzyTavObjetivosEstraInsti nuevoEntity = daoUzyTavObjetivosEstraInsti.save(entity);
return mapper.entityToDto(nuevoEntity);
}
@Override
public DtoUzyTavObjetivosEstraInsti editar(Long id, DtoUzyTavObjetivosEstraInsti dtoUzyTavObjetivosEstraInsti) {
try {
ModelUzyTavObjetivosEstraInsti entity = daoUzyTavObjetivosEstraInsti.findById(id).get();
if (entity != null) {
entity.setUZYTAVOBJETIVOS_ESTRA_INSTI_DESCRIPCION(dtoUzyTavObjetivosEstraInsti.getUZYTAVOBJETIVOS_ESTRA_INSTI_DESCRIPCION());
entity.setUZYTTIPESTR_CODE(dtoUzyTavObjetivosEstraInsti.getUZYTTIPESTR_CODE());
ModelUzyTavObjetivosEstraInsti updatedEntity = daoUzyTavObjetivosEstraInsti.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) {
ModelUzyTavObjetivosEstraInsti entity = daoUzyTavObjetivosEstraInsti.findById(id).orElse(null);
if (entity != null) {
daoUzyTavObjetivosEstraInsti.delete(entity);
return true;
}
return false;
}
}
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