Se corrigen los servicios de ModelUzyTLineaOperativa

parent f085138d
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavCabComca.IServiceUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavCabComca.IServiceUzyTavCabComca;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -22,31 +23,36 @@ public class UzyTavCabComcaController { ...@@ -22,31 +23,36 @@ public class UzyTavCabComcaController {
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
public ResponseEntity<ModelUzyTavCabComca> ListarPorID(@PathVariable Long id) { public ResponseEntity<DtoUzyTavCabComca> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzyTavCabComca.ListarPorID(id), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavCabComca.ListarPorID(id), HttpStatus.OK);
} }
@GetMapping("/getAll") @GetMapping("/getAll")
public ResponseEntity<List<ModelUzyTavCabComca>> ListarRegistros() { public ResponseEntity<List<DtoUzyTavCabComca>> ListarRegistros() {
return new ResponseEntity<>(serviceUzyTavCabComca.ListarRegistros(), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavCabComca.ListarRegistros(), HttpStatus.OK);
} }
@PostMapping("/guardar") @PostMapping("/guardar")
public ResponseEntity<ModelUzyTavCabComca> guardar(@RequestBody ModelUzyTavCabComca modelUzyTavCabComca) { public ResponseEntity<DtoUzyTavCabComca> guardar(@RequestBody DtoUzyTavCabComca dtoUzyTavCabComca) {
return new ResponseEntity<>(serviceUzyTavCabComca.guardar(modelUzyTavCabComca), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavCabComca.guardar(dtoUzyTavCabComca), HttpStatus.OK);
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<ModelUzyTavCabComca> editar(@PathVariable Long id, @RequestBody ModelUzyTavCabComca modelUzyTavCabComca) { public ResponseEntity<DtoUzyTavCabComca> editar(@PathVariable Long id, @RequestBody DtoUzyTavCabComca dtoUzyTavCabComca) {
return new ResponseEntity<>(serviceUzyTavCabComca.editar(id, modelUzyTavCabComca), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavCabComca.editar(id, dtoUzyTavCabComca), HttpStatus.OK);
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) { public ResponseEntity<String> eliminar(@PathVariable Long id){
serviceUzyTavCabComca.eliminar(id); boolean eliminado = serviceUzyTavCabComca.eliminar(id);
return ResponseEntity.ok().build(); if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
} }
} }
...@@ -2,15 +2,23 @@ package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class; ...@@ -2,15 +2,23 @@ package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavConsolca;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
import org.modelmapper.PropertyMap;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.persistence.EntityManager;
import java.util.List;
import java.util.stream.Collectors;
@Component @Component
public class UzyTavCabComcaMapper { public class UzyTavCabComcaMapper {
private final ModelMapper modelMapper; private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavCabComcaMapper(ModelMapper modelMapper) { public UzyTavCabComcaMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper; this.modelMapper = modelMapper;
this.entityManager = entityManager;
configureMappings();
} }
public DtoUzyTavCabComca entityToDto(ModelUzyTavCabComca entity) { public DtoUzyTavCabComca entityToDto(ModelUzyTavCabComca entity) {
...@@ -18,6 +26,25 @@ public class UzyTavCabComcaMapper { ...@@ -18,6 +26,25 @@ public class UzyTavCabComcaMapper {
} }
public ModelUzyTavCabComca dtoToEntity(DtoUzyTavCabComca dto) { public ModelUzyTavCabComca dtoToEntity(DtoUzyTavCabComca dto) {
return modelMapper.map(dto, ModelUzyTavCabComca.class); ModelUzyTavCabComca entity = modelMapper.map(dto, ModelUzyTavCabComca.class);
Long consolcaID = dto.getUzytavconsolca_id();
ModelUzyTavConsolca valorPar = entityManager.find(ModelUzyTavConsolca.class, consolcaID);
entity.setUzytavconsolca(valorPar);
return entity;
}
public List<DtoUzyTavCabComca> entitiesToDtos(List<ModelUzyTavCabComca> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
private void configureMappings() {
modelMapper.addMappings(new PropertyMap<ModelUzyTavCabComca, DtoUzyTavCabComca>() {
@Override
protected void configure() {
map().setUzytavcabcomca_id(source.getUzytavcabcomca_id());
map().setUzytavconsolca_id(source.getUzytavconsolca().getUzytavconsolca_id());
}
});
} }
} }
package ec.edu.espe.movilidad.MovilidadWS.Model; package ec.edu.espe.movilidad.MovilidadWS.Model;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Getter;
import lombok.Setter;
import javax.persistence.*; import javax.persistence.*;
import java.util.Date; import java.util.Date;
import java.util.Set; import java.util.Set;
@Data @Getter
@Setter
@Entity @Entity
@Table(name = "uzytavcabcomca", schema = "UTIC1") @Table(name = "uzytavcabcomca", schema = "UTIC1")
public class ModelUzyTavCabComca { public class ModelUzyTavCabComca {
...@@ -27,28 +29,20 @@ public class ModelUzyTavCabComca { ...@@ -27,28 +29,20 @@ public class ModelUzyTavCabComca {
//RELACION CON PROYECT- cabcomca es la padre //RELACION CON PROYECT- cabcomca es la padre
//@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
//@JoinColumn(name = "uzytavcabcomca_id", referencedColumnName = "uzytavcabcomca_id")
//Set<ModelUzyTavProyec> modelUzyTavProyecss = new HashSet<>();
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "uzytavcabcomca", cascade = CascadeType.ALL) @OneToMany(mappedBy = "uzytavcabcomca", cascade = CascadeType.ALL)
private Set<ModelUzyTavProyec> modelUzyTavProyecs; private Set<ModelUzyTavProyec> modelUzyTavProyecs;
//RELACION CON DETCOMCA-Tabla Hija //RELACION CON DETCOMCA-Tabla Hija
//
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "uzytavcabcomca", cascade = CascadeType.ALL) @OneToMany(mappedBy = "uzytavcabcomca", cascade = CascadeType.ALL)
private Set<ModelUzyTavDetComca> modelUzyTavDetComcas; private Set<ModelUzyTavDetComca> modelUzyTavDetComcas;
///fetch = FetchType.LAZY
//RELACIÓN CON CONSOLCA- TABLA PADRE //RELACIÓN CON CONSOLCA- TABLA PADRE
@JsonIgnore @JsonIgnore
@ManyToOne @ManyToOne
@JoinColumn(name = "uzytavconsolca_id") @JoinColumn(name = "uzytavconsolca_id")
private ModelUzyTavConsolca uzytavconsolca; private ModelUzyTavConsolca uzytavconsolca;
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavCabComca; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavCabComca;
import java.util.List; import java.util.List;
public interface IServiceUzyTavCabComca { public interface IServiceUzyTavCabComca {
public ModelUzyTavCabComca ListarPorID(Long id); DtoUzyTavCabComca ListarPorID(Long id);
public List<ModelUzyTavCabComca> ListarRegistros(); List<DtoUzyTavCabComca> ListarRegistros();
public ModelUzyTavCabComca guardar(ModelUzyTavCabComca modelUzyTavCabComca); DtoUzyTavCabComca guardar(DtoUzyTavCabComca dtoUzyTavCabComca);
public ModelUzyTavCabComca editar(Long id, ModelUzyTavCabComca modelUzyTavCabComca); DtoUzyTavCabComca editar(Long id, DtoUzyTavCabComca dtoUzyTavCabComca);
void eliminar(Long id); boolean eliminar(Long id);
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavCabComca; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavCabComca;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavCabComcaMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavCabComca;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
...@@ -10,40 +12,59 @@ import java.util.List; ...@@ -10,40 +12,59 @@ import java.util.List;
@Service @Service
public class ServiceUzyTavCabComca implements IServiceUzyTavCabComca{ public class ServiceUzyTavCabComca implements IServiceUzyTavCabComca{
@Autowired private final DaoUzyTavCabComca daoUzyTavCabComca;
DaoUzyTavCabComca daoUzyTavCabComca; private final UzyTavCabComcaMapper mapper;
public ServiceUzyTavCabComca(DaoUzyTavCabComca daoUzyTavCabComca, UzyTavCabComcaMapper mapper) {
this.daoUzyTavCabComca = daoUzyTavCabComca;
this.mapper = mapper;
}
@Override @Override
public ModelUzyTavCabComca ListarPorID(@PathVariable Long id) { public DtoUzyTavCabComca ListarPorID(@PathVariable Long id) {
return daoUzyTavCabComca.findById(id).get(); ModelUzyTavCabComca entity = daoUzyTavCabComca.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} }
@Override @Override
public List<ModelUzyTavCabComca> ListarRegistros() { public List<DtoUzyTavCabComca> ListarRegistros() {
return daoUzyTavCabComca.findAll(); List<ModelUzyTavCabComca> entities = daoUzyTavCabComca.findAll();
return mapper.entitiesToDtos(entities);
} }
@Override @Override
public ModelUzyTavCabComca guardar(ModelUzyTavCabComca modelUzyTavCabComca) { public DtoUzyTavCabComca guardar(DtoUzyTavCabComca dtoUzyTavCabComca) {
return daoUzyTavCabComca.save(modelUzyTavCabComca); ModelUzyTavCabComca entity = mapper.dtoToEntity(dtoUzyTavCabComca);
ModelUzyTavCabComca nuevoEntity = daoUzyTavCabComca.save(entity);
return mapper.entityToDto(nuevoEntity);
} }
@Override @Override
public ModelUzyTavCabComca editar(@PathVariable Long id, ModelUzyTavCabComca modelUzyTavCabComca) { public DtoUzyTavCabComca editar(@PathVariable Long id, DtoUzyTavCabComca dtoUzyTavCabComca) {
ModelUzyTavCabComca dato = daoUzyTavCabComca.findById(id).get(); try {
//.orElseThrow(()->new ControlExcepciones("No existe el registro con el ID : " + id)); ModelUzyTavCabComca entity = daoUzyTavCabComca.findById(id).get();
//Seteamos los nuevos datos del registro
dato.setUzytavcabcomca_id(modelUzyTavCabComca.getUzytavcabcomca_id()); if (entity != null) {
dato.setUzytavcabcomca_decsrip(modelUzyTavCabComca.getUzytavcabcomca_decsrip()); entity.setUzytavcabcomca_decsrip(dtoUzyTavCabComca.getUzytavcabcomca_decsrip());
dato.setUzytavcabcomca_fech_crea(modelUzyTavCabComca.getUzytavcabcomca_fech_crea()); entity.setUzytavcabcomca_fech_crea(dtoUzyTavCabComca.getUzytavcabcomca_fech_crea());
ModelUzyTavCabComca updatedEntity = daoUzyTavCabComca.save(entity);
ModelUzyTavCabComca datoActualizado = daoUzyTavCabComca.save(dato); return mapper.entityToDto(updatedEntity);
return datoActualizado; }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 @Override
public void eliminar(@PathVariable Long id) { public boolean eliminar(Long id) {
ModelUzyTavCabComca dato = daoUzyTavCabComca.findById(id).get(); ModelUzyTavCabComca entity = daoUzyTavCabComca.findById(id).orElse(null);
//.orElseThrow(() -> new ControlExcepciones("No existe el registro con el ID : " + id)); if (entity != null) {
daoUzyTavCabComca.delete(dato); daoUzyTavCabComca.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