Se corrigen los servicios de ModelUzyTavClasPre

parent 1cf4ef36
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavClasPre;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavClasPre.IServiceUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavClasPre.IServiceUzyTavClasPre;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List; import java.util.List;
import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION; import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_VERSION;
...@@ -16,44 +16,53 @@ import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_ ...@@ -16,44 +16,53 @@ import static ec.edu.espe.movilidad.MovilidadWS.Constant.GlobalConstants.V1_API_
@RequestMapping(V1_API_VERSION+"/claspre") @RequestMapping(V1_API_VERSION+"/claspre")
public class UzyTavClasPreController { public class UzyTavClasPreController {
@Autowired
IServiceUzyTavClasPre serviceUzyTavClasPre; private final IServiceUzyTavClasPre serviceUzyTavClasPre;
public UzyTavClasPreController(IServiceUzyTavClasPre serviceUzyTavClasPre) {
this.serviceUzyTavClasPre = serviceUzyTavClasPre;
}
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
public ResponseEntity<ModelUzyTavClasPre> ListarPorID(@PathVariable Long id) { public ResponseEntity<DtoUzyTavClasPre> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzyTavClasPre.ListarPorID(id), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavClasPre.ListarPorID(id), HttpStatus.OK);
} }
@GetMapping("/getAll") @GetMapping("/getAll")
public ResponseEntity<List<ModelUzyTavClasPre>> findAllWithClasificadorPresup() { public ResponseEntity<List<DtoUzyTavClasPre>> ListarRegistros() {
List<ModelUzyTavClasPre> registros = serviceUzyTavClasPre.findAllWithClasificadorPresup(); return new ResponseEntity<>(serviceUzyTavClasPre.ListarRegistros(), HttpStatus.OK);
return new ResponseEntity<>(registros, HttpStatus.OK);
} }
@PostMapping("/guardar") @PostMapping("/guardar")
public ResponseEntity<ModelUzyTavClasPre> guardar(@RequestBody ModelUzyTavClasPre modelUzyTavClasPre, @RequestParam("uzytclasificador_presup_id") Long uzytclasificador_presup_id) { public ResponseEntity<DtoUzyTavClasPre> guardar(@Valid @RequestBody DtoUzyTavClasPre dtoUzyTavClasPre) {
ModelUzyTavClasPre creado = serviceUzyTavClasPre.guardar(uzytclasificador_presup_id, modelUzyTavClasPre); DtoUzyTavClasPre savedDto = serviceUzyTavClasPre.guardar(dtoUzyTavClasPre);
return ResponseEntity.status(HttpStatus.CREATED).body(creado); return ResponseEntity.ok(savedDto);
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<ModelUzyTavClasPre> editar(@PathVariable Long id, @RequestBody ModelUzyTavClasPre modelUzyTavClasPre) { public ResponseEntity<DtoUzyTavClasPre> editar(@PathVariable Long id, @RequestBody DtoUzyTavClasPre dtoUzyTavClasPre) {
return new ResponseEntity<>(serviceUzyTavClasPre.editar(id, modelUzyTavClasPre), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavClasPre.editar(id, dtoUzyTavClasPre), HttpStatus.OK);
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) { public ResponseEntity<String> eliminar(@PathVariable Long id){
serviceUzyTavClasPre.eliminar(id); boolean eliminado = serviceUzyTavClasPre.eliminar(id);
return ResponseEntity.ok().build(); if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
} }
} }
...@@ -2,7 +2,9 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao; ...@@ -2,7 +2,9 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface DaoUzyTavClasPre extends JpaRepository<ModelUzyTavClasPre, Long> { public interface DaoUzyTavClasPre extends JpaRepository<ModelUzyTavClasPre, Long> {
......
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class; package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavClasPre;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTClasificadorPresup;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre;
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 UzyTavClasPreMapper { public class UzyTavClasPreMapper {
private final ModelMapper modelMapper; private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavClasPreMapper(ModelMapper modelMapper) { public UzyTavClasPreMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper; this.modelMapper = modelMapper;
this.entityManager = entityManager;
configureMappings();
} }
public DtoUzyTavClasPre entityToDto(ModelUzyTavClasPre entity) { public DtoUzyTavClasPre entityToDto(ModelUzyTavClasPre entity) {
...@@ -18,6 +25,28 @@ public class UzyTavClasPreMapper { ...@@ -18,6 +25,28 @@ public class UzyTavClasPreMapper {
} }
public ModelUzyTavClasPre dtoToEntity(DtoUzyTavClasPre dto) { public ModelUzyTavClasPre dtoToEntity(DtoUzyTavClasPre dto) {
return modelMapper.map(dto, ModelUzyTavClasPre.class); ModelUzyTavClasPre entity = modelMapper.map(dto, ModelUzyTavClasPre.class);
Long clasificacorPrID = dto.getUzytclasificador_presup_id();
ModelUzyTClasificadorPresup clasificadorPresup = entityManager.find(ModelUzyTClasificadorPresup.class, clasificacorPrID);
entity.setUzytclasificador_presup(clasificadorPresup);
return entity;
} }
public List<DtoUzyTavClasPre> entitiesToDtos(List<ModelUzyTavClasPre> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
private void configureMappings() {
modelMapper.addMappings(new PropertyMap<ModelUzyTavClasPre, DtoUzyTavClasPre>() {
@Override
protected void configure() {
map().setUzytavclaspre_id(source.getUzytavclaspre_id());
map().setUzytclasificador_presup_id(source.getUzytclasificador_presup().getUzytclasificador_presup_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.Set; import java.util.Set;
@Data @Getter
@Setter
@Entity @Entity
@Table(name = "uzytavclaspre", schema = "UTIC1") @Table(name = "uzytavclaspre", schema = "UTIC1")
public class ModelUzyTavClasPre { public class ModelUzyTavClasPre {
...@@ -14,7 +16,7 @@ public class ModelUzyTavClasPre { ...@@ -14,7 +16,7 @@ public class ModelUzyTavClasPre {
@Id @Id
@SequenceGenerator(name = "uzytavclaspre_seq", sequenceName = "SEQ_UZYTAVCLASPRE", allocationSize = 1) @SequenceGenerator(name = "uzytavclaspre_seq", sequenceName = "SEQ_UZYTAVCLASPRE", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavclaspre_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavclaspre_seq")
@Column(name = "uzytavclaspre_id", nullable = false) @Column(name = "uzytavclaspre_id")
private Long uzytavclaspre_id; private Long uzytavclaspre_id;
@Column(name = "uzytavclaspre_estado", length = 1) @Column(name = "uzytavclaspre_estado", length = 1)
...@@ -26,7 +28,7 @@ public class ModelUzyTavClasPre { ...@@ -26,7 +28,7 @@ public class ModelUzyTavClasPre {
//RELACIÓN CON CLASIFICADOR_PRESUP-TABLA PADRE //RELACIÓN CON CLASIFICADOR_PRESUP-TABLA PADRE
@ManyToOne @ManyToOne( fetch = FetchType.LAZY)
@JoinColumn(name = "uzytclasificador_presup_id", referencedColumnName = "uzytclasificador_presup_id") @JoinColumn(name = "uzytclasificador_presup_id", referencedColumnName = "uzytclasificador_presup_id")
private ModelUzyTClasificadorPresup uzytclasificador_presup; private ModelUzyTClasificadorPresup uzytclasificador_presup;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavClasPre; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavClasPre;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavClasPre;
import java.util.List; import java.util.List;
public interface IServiceUzyTavClasPre { public interface IServiceUzyTavClasPre {
public ModelUzyTavClasPre ListarPorID(Long id); DtoUzyTavClasPre ListarPorID(Long id);
public List<ModelUzyTavClasPre> ListarRegistros(); List<DtoUzyTavClasPre> ListarRegistros();
public List<ModelUzyTavClasPre> findAllWithClasificadorPresup();
public ModelUzyTavClasPre guardar(Long uzytclasificador_presup_id, ModelUzyTavClasPre modelUzyTavClasPre); DtoUzyTavClasPre guardar(DtoUzyTavClasPre dtoUzyTavClasPre);
public ModelUzyTavClasPre editar( Long id, ModelUzyTavClasPre modelUzyTavClasPre); DtoUzyTavClasPre editar(Long id, DtoUzyTavClasPre dtoUzyTavClasPre);
void eliminar(Long id); boolean eliminar(Long id);
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavClasPre; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavClasPre;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTClasificadorPresup;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavClasPre;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTClasificadorPresup; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavClasPre;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavClasPreMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavClasPre;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.persistence.EntityNotFoundException;
import java.util.List; import java.util.List;
@Service @Service
public class ServiceUzyTavClasPre implements IServiceUzyTavClasPre{ public class ServiceUzyTavClasPre implements IServiceUzyTavClasPre{
@Autowired
DaoUzyTavClasPre daoUzyTavClasPre;
@Autowired
DaoUzyTClasificadorPresup daoUzyTClasificadorPresup;
@Override private final DaoUzyTavClasPre daoUzyTavClasPre;
public ModelUzyTavClasPre ListarPorID(Long id) { private final UzyTavClasPreMapper mapper;
return daoUzyTavClasPre.findById(id).get();
}
public ServiceUzyTavClasPre(DaoUzyTavClasPre daoUzyTavClasPre, UzyTavClasPreMapper mapper) {
this.daoUzyTavClasPre = daoUzyTavClasPre;
this.mapper = mapper;
}
@Override @Override
public List<ModelUzyTavClasPre> ListarRegistros() { public DtoUzyTavClasPre ListarPorID(Long id) {
return daoUzyTavClasPre.findAll(); ModelUzyTavClasPre entity = daoUzyTavClasPre.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} }
@Override @Override
public List<ModelUzyTavClasPre> findAllWithClasificadorPresup() { public List<DtoUzyTavClasPre> ListarRegistros() {
return daoUzyTavClasPre.findAll(); List<ModelUzyTavClasPre> entities = daoUzyTavClasPre.findAll();
return mapper.entitiesToDtos(entities);
} }
@Override
public ModelUzyTavClasPre guardar(Long uzytclasificador_presup_id, ModelUzyTavClasPre modelUzyTavClasPre) {
ModelUzyTClasificadorPresup uzyTClasificadorPresup = daoUzyTClasificadorPresup.findById(uzytclasificador_presup_id) @Override
public DtoUzyTavClasPre guardar(DtoUzyTavClasPre dtoUzyTavClasPre) {
.orElseThrow(() -> new EntityNotFoundException("No se encontró la entidad ModelUzyTClasificadorPresup con el ID proporcionado")); ModelUzyTavClasPre entity = mapper.dtoToEntity(dtoUzyTavClasPre);
modelUzyTavClasPre.setUzytclasificador_presup((uzyTClasificadorPresup)); ModelUzyTavClasPre nuevoEntity = daoUzyTavClasPre.save(entity);
return daoUzyTavClasPre.save(modelUzyTavClasPre); return mapper.entityToDto(nuevoEntity);
} }
@Override @Override
public ModelUzyTavClasPre editar(Long id, ModelUzyTavClasPre modelUzyTavClasPre) { public DtoUzyTavClasPre editar(Long id, DtoUzyTavClasPre dtoUzyTavClasPre) {
ModelUzyTavClasPre dato = daoUzyTavClasPre.findById(id).get(); try {
dato.setUzytavclaspre_estado(modelUzyTavClasPre.getUzytavclaspre_estado()); ModelUzyTavClasPre entity = daoUzyTavClasPre.findById(id).get();
ModelUzyTavClasPre datoActualizado = daoUzyTavClasPre.save(dato); if (entity != null) {
return datoActualizado; entity.setUzytavclaspre_estado(dtoUzyTavClasPre.getUzytavclaspre_estado());
entity.setUzytavclaspre_tipo(dtoUzyTavClasPre.getUzytavclaspre_tipo());
ModelUzyTavClasPre updatedEntity = daoUzyTavClasPre.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 @Override
public void eliminar(Long id) { public boolean eliminar(Long id) {
ModelUzyTavClasPre dato = daoUzyTavClasPre.findById(id).get(); ModelUzyTavClasPre entity = daoUzyTavClasPre.findById(id).orElse(null);
//.orElseThrow(() -> new ControlExcepciones("No existe el registro con el ID : " + id)); if (entity != null) {
daoUzyTavClasPre.delete(dato); daoUzyTavClasPre.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