Se corrigen los servicios de ModelUzyTavInstituc

parent 21c980c1
package ec.edu.espe.movilidad.MovilidadWS.Controller; package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavInstituc; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavInstituc;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavInstituc.IServiceUzyTavInstituc; import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavInstituc.IServiceUzyTavInstituc;
import org.springframework.beans.factory.annotation.Autowired; 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 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;
...@@ -21,41 +20,40 @@ public class UzyTavInstitucController { ...@@ -21,41 +20,40 @@ public class UzyTavInstitucController {
IServiceUzyTavInstituc serviceUzyTavInstituc; IServiceUzyTavInstituc serviceUzyTavInstituc;
@GetMapping("/exampleFindId/{id}") @GetMapping("/exampleFindId/{id}")
public ResponseEntity<ModelUzyTavInstituc> ListarPorID(@PathVariable Long id) { public ResponseEntity<DtoUzyTavInstituc> ListarPorID(@PathVariable Long id) {
return new ResponseEntity<>(serviceUzyTavInstituc.ListarPorID(id), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavInstituc.ListarPorID(id), HttpStatus.OK);
} }
@GetMapping("/getAll") @GetMapping("/getAll")
public ResponseEntity<List<ModelUzyTavInstituc>> ListarRegistros() { public ResponseEntity<List<DtoUzyTavInstituc>> ListarRegistros() {
return new ResponseEntity<>(serviceUzyTavInstituc.ListarRegistros(), HttpStatus.OK); return new ResponseEntity<>(serviceUzyTavInstituc.ListarRegistros(), HttpStatus.OK);
} }
@PostMapping("/guardar") @PostMapping("/guardar")
public ResponseEntity<ModelUzyTavInstituc> guardar(@RequestBody ModelUzyTavInstituc modelUzyTavInstituc, @RequestParam("uzytparroquia_id") String uzytparroquia_id) { public ResponseEntity<DtoUzyTavInstituc> guardar(@RequestBody DtoUzyTavInstituc dtoUzyTavInstituc) {
ModelUzyTavInstituc creado = serviceUzyTavInstituc.guardar(uzytparroquia_id, modelUzyTavInstituc); DtoUzyTavInstituc creado = serviceUzyTavInstituc.guardar(dtoUzyTavInstituc);
return ResponseEntity.status(HttpStatus.CREATED).body(creado); return ResponseEntity.status(HttpStatus.CREATED).body(creado);
} }
@PutMapping("/editar/{id}") @PutMapping("/editar/{id}")
public ResponseEntity<ModelUzyTavInstituc> editar(@PathVariable Long id,@RequestParam("uzytparroquia_id") String uzytparroquia_id, @RequestBody ModelUzyTavInstituc modelUzyTavInstituc) { public ResponseEntity<DtoUzyTavInstituc> editar(@PathVariable Long id, @RequestBody DtoUzyTavInstituc dtoUzyTavInstituc) {
ModelUzyTavInstituc institucActualizada = serviceUzyTavInstituc.editar(id, uzytparroquia_id, modelUzyTavInstituc); return new ResponseEntity<>(serviceUzyTavInstituc.editar(id, dtoUzyTavInstituc), HttpStatus.OK);
if (institucActualizada != null) {
return new ResponseEntity<>(institucActualizada, HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
} }
@DeleteMapping("/eliminar/{id}") @DeleteMapping("/eliminar/{id}")
public ResponseEntity<Void> eliminar(@PathVariable Long id) { public ResponseEntity<String> eliminar(@PathVariable Long id){
serviceUzyTavInstituc.eliminar(id); boolean eliminado = serviceUzyTavInstituc.eliminar(id);
return ResponseEntity.ok().build(); if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
} }
} }
...@@ -2,8 +2,13 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao; ...@@ -2,8 +2,13 @@ package ec.edu.espe.movilidad.MovilidadWS.Dao;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavInstituc; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavInstituc;
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 DaoUzyTavInstituc extends JpaRepository<ModelUzyTavInstituc, Long> { public interface DaoUzyTavInstituc extends JpaRepository<ModelUzyTavInstituc, Long> {
@Query("SELECT l FROM ModelUzyTavInstituc l WHERE l.uzytavinstituc_estado = 'A'")
List<ModelUzyTavInstituc> findByEstadoTrue();
} }
package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data;
import java.util.Date;
@Data
public class DtoUzyTavInstituc {
private Long uzytavinstituc_id;
private String uzytavinstituc_nombre;
private String uzytavinstituc_calle;
private String uzytavinstituc_telefono;
private String uzytavinstituc_nomrepl;
private String uzytavinstituc_cargorl;
private String uzytavinstituc_apellirl;
private String uzytavinstituc_telrepl;
private String uzytavinstituc_mailrl1;
private Date uzytavinstituc_fecha_crea;
private String uzytavinstituc_estado;
private String uzytparroquia_id;
private DtoUzyTParroquia uzytparroquia;
}
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavInstituc;
import ec.edu.espe.movilidad.MovilidadWS.Model.*;
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 UzyTavInstitucMapper {
private final ModelMapper modelMapper;
private final EntityManager entityManager;
public UzyTavInstitucMapper(ModelMapper modelMapper, EntityManager entityManager) {
this.modelMapper = modelMapper;
this.entityManager = entityManager;
}
public DtoUzyTavInstituc entityToDto(ModelUzyTavInstituc entity) {
return modelMapper.map(entity, DtoUzyTavInstituc.class);
}
public ModelUzyTavInstituc dtoToEntity(DtoUzyTavInstituc dto) {
ModelUzyTavInstituc entity = modelMapper.map(dto, ModelUzyTavInstituc.class);
String parroquiaID = dto.getUzytparroquia_id();
ModelUzyTParroquia parroquia = entityManager.find(ModelUzyTParroquia.class, parroquiaID);
entity.setUzytparroquia(parroquia);
return entity;
}
public List<DtoUzyTavInstituc> entitiesToDtos(List<ModelUzyTavInstituc> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
}
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;
@Data @Getter
@Setter
@Entity @Entity
@Table(name = "uzytavinstituc", schema = "UTIC1") @Table(name = "uzytavinstituc", schema = "UTIC1")
public class ModelUzyTavInstituc { public class ModelUzyTavInstituc {
@Id @Id
@SequenceGenerator(name = "uzytavinstituc_seq", sequenceName = "SEQ_UZYTAVINSTITUC", allocationSize = 1) @SequenceGenerator(name = "uzytavinstituc_seq", sequenceName = "SEQ_UZYTAVINSTITUC", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavinstituc_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavinstituc_seq")
@Column(name = "uzytavinstituc_id") @Column(name = "uzytavinstituc_id")
private Long uzytavinstituc_id; private Long uzytavinstituc_id;
@Column(name = "uzytavinstituc_nombre") @Column(name = "uzytavinstituc_nombre")
private String uzytavinstituc_nombre; private String uzytavinstituc_nombre;
@Column(name = "uzytavinstituc_calle") @Column(name = "uzytavinstituc_calle")
private String uzytavinstituc_calle; private String uzytavinstituc_calle;
@Column(name = "uzytavinstituc_telefono") @Column(name = "uzytavinstituc_telefono")
private String uzytavinstituc_telefono; private String uzytavinstituc_telefono;
@Column(name = "uzytavinstituc_nomrepl") @Column(name = "uzytavinstituc_nomrepl")
private String uzytavinstituc_nomrepl; private String uzytavinstituc_nomrepl;
...@@ -51,9 +46,8 @@ public class ModelUzyTavInstituc { ...@@ -51,9 +46,8 @@ public class ModelUzyTavInstituc {
private String uzytavinstituc_estado; private String uzytavinstituc_estado;
//RELACIÓN CON PARROQUIA-TABLA PADRE //RELACIÓN CON PARROQUIA-TABLA PADRE
@JsonIgnore @JsonIgnore
@ManyToOne( cascade = CascadeType.ALL) @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "uzytparroquia_id", referencedColumnName = "uzytparroquia_id") @JoinColumn(name = "uzytparroquia_id", referencedColumnName = "uzytparroquia_id")
private ModelUzyTParroquia uzytparroquia; private ModelUzyTParroquia uzytparroquia;
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavInstituc; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavInstituc;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavInstituc;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavInstituc;
import java.util.List; import java.util.List;
public interface IServiceUzyTavInstituc { public interface IServiceUzyTavInstituc {
public ModelUzyTavInstituc ListarPorID(Long id); DtoUzyTavInstituc ListarPorID(Long id);
public List<ModelUzyTavInstituc> ListarRegistros(); List<DtoUzyTavInstituc> ListarRegistros();
public ModelUzyTavInstituc guardar(String uzytparroquia_id, ModelUzyTavInstituc modelUzyTavInstituc); DtoUzyTavInstituc guardar(DtoUzyTavInstituc dtoUzyTavInstituc);
public ModelUzyTavInstituc editar( Long id,String uzytparroquia_id, ModelUzyTavInstituc modelUzyTavInstituc); DtoUzyTavInstituc editar( Long id,DtoUzyTavInstituc dtoUzyTavInstituc);
boolean eliminar(Long id);
void eliminar(Long id);
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavInstituc; package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavInstituc;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTParroquia;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavInstituc; import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavInstituc;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavInstituc;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavInstitucMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTParroquia; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTParroquia;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavInstituc; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavInstituc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.persistence.EntityNotFoundException; import javax.persistence.EntityManager;
import java.util.List; import java.util.List;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
@Service @Service
public class ServiceUzyTavInstituc implements IServiceUzyTavInstituc{ public class ServiceUzyTavInstituc implements IServiceUzyTavInstituc {
@Autowired
DaoUzyTavInstituc daoUzyTavInstituc; private final DaoUzyTavInstituc daoUzyTavInstituc;
@Autowired private final UzyTavInstitucMapper mapper;
DaoUzyTParroquia daoUzyTParroquia; private final EntityManager entityManager;
@Override
public ModelUzyTavInstituc ListarPorID(Long id) { public ServiceUzyTavInstituc(DaoUzyTavInstituc daoUzyTavInstituc, UzyTavInstitucMapper mapper, EntityManager entityManager) {
return daoUzyTavInstituc.findById(id).get(); this.daoUzyTavInstituc = daoUzyTavInstituc;
this.mapper = mapper;
this.entityManager = entityManager;
} }
@Override @Override
public List<ModelUzyTavInstituc> ListarRegistros() { public DtoUzyTavInstituc ListarPorID(Long id) {
return daoUzyTavInstituc.findAll(); ModelUzyTavInstituc entity = daoUzyTavInstituc.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
return mapper.entityToDto(entity);
} }
@Override @Override
public ModelUzyTavInstituc guardar(String uzytparroquia_id, ModelUzyTavInstituc modelUzyTavInstituc) { public List<DtoUzyTavInstituc> ListarRegistros() {
ModelUzyTParroquia uzyTParroquia = daoUzyTParroquia.findById(uzytparroquia_id) List<ModelUzyTavInstituc> entities = daoUzyTavInstituc.findByEstadoTrue();
.orElseThrow(() -> new EntityNotFoundException("No se encontró la entidad ModelUzyTParroquia con el ID proporcionado")); return mapper.entitiesToDtos(entities);
modelUzyTavInstituc.setUzytparroquia(uzyTParroquia);
return daoUzyTavInstituc.save(modelUzyTavInstituc);
} }
@Override @Override
public ModelUzyTavInstituc editar(Long id, String uzytparroquia_id, ModelUzyTavInstituc modelUzyTavInstituc) { public DtoUzyTavInstituc guardar(DtoUzyTavInstituc dtoUzyTavInstituc) {
ModelUzyTavInstituc dato = daoUzyTavInstituc.findById(id) ModelUzyTavInstituc entity = mapper.dtoToEntity(dtoUzyTavInstituc);
.orElseThrow(() -> new NoSuchElementException("No existe el registro con el ID: " + id)); ModelUzyTavInstituc nuevoEntity = daoUzyTavInstituc.save(entity);
return mapper.entityToDto(nuevoEntity);
ModelUzyTParroquia uzyTParroquia = daoUzyTParroquia.findById(uzytparroquia_id) }
.orElseThrow(() -> new EntityNotFoundException("No se encontró la entidad ModelUzyTParroquia con el ID proporcionado"));
// Actualizar los datos del registro @Override
dato.setUzytparroquia(uzyTParroquia); public DtoUzyTavInstituc editar(Long id,DtoUzyTavInstituc dtoUzyTavInstituc) {
dato.setUzytavinstituc_id(modelUzyTavInstituc.getUzytavinstituc_id()); try {
dato.setUzytavinstituc_nombre(modelUzyTavInstituc.getUzytavinstituc_nombre()); ModelUzyTavInstituc entity = daoUzyTavInstituc.findById(id)
dato.setUzytavinstituc_calle(modelUzyTavInstituc.getUzytavinstituc_calle()); .orElseThrow(() -> new NoSuchElementException("No existe el registro con el ID: " + id));
dato.setUzytavinstituc_telefono(modelUzyTavInstituc.getUzytavinstituc_telefono());
dato.setUzytavinstituc_nomrepl(modelUzyTavInstituc.getUzytavinstituc_nomrepl());
dato.setUzytavinstituc_cargorl(modelUzyTavInstituc.getUzytavinstituc_cargorl());
dato.setUzytavinstituc_apellirl(modelUzyTavInstituc.getUzytavinstituc_apellirl());
dato.setUzytavinstituc_telrepl(modelUzyTavInstituc.getUzytavinstituc_telrepl());
dato.setUzytavinstituc_mailrl1(modelUzyTavInstituc.getUzytavinstituc_mailrl1());
dato.setUzytavinstituc_fecha_crea(modelUzyTavInstituc.getUzytavinstituc_fecha_crea());
dato.setUzytavinstituc_estado(modelUzyTavInstituc.getUzytavinstituc_estado());
ModelUzyTavInstituc datoActualizado = daoUzyTavInstituc.save(dato); if (entity != null) {
return datoActualizado; // Actualizar los datos del registro
entity.setUzytavinstituc_nombre(dtoUzyTavInstituc.getUzytavinstituc_nombre());
entity.setUzytavinstituc_calle(dtoUzyTavInstituc.getUzytavinstituc_calle());
entity.setUzytavinstituc_telefono(dtoUzyTavInstituc.getUzytavinstituc_telefono());
entity.setUzytavinstituc_nomrepl(dtoUzyTavInstituc.getUzytavinstituc_nomrepl());
entity.setUzytavinstituc_cargorl(dtoUzyTavInstituc.getUzytavinstituc_cargorl());
entity.setUzytavinstituc_apellirl(dtoUzyTavInstituc.getUzytavinstituc_apellirl());
entity.setUzytavinstituc_telrepl(dtoUzyTavInstituc.getUzytavinstituc_telrepl());
entity.setUzytavinstituc_mailrl1(dtoUzyTavInstituc.getUzytavinstituc_mailrl1());
entity.setUzytavinstituc_fecha_crea(dtoUzyTavInstituc.getUzytavinstituc_fecha_crea());
if (dtoUzyTavInstituc.getUzytavinstituc_estado() !=null){
entity.setUzytavinstituc_estado(dtoUzyTavInstituc.getUzytavinstituc_estado());
}
if (dtoUzyTavInstituc.getUzytparroquia_id() != null) {
ModelUzyTParroquia parroquia = entityManager.find(ModelUzyTParroquia.class, dtoUzyTavInstituc.getUzytparroquia_id());
entity.setUzytparroquia(parroquia);
}
ModelUzyTavInstituc updatedEntity = daoUzyTavInstituc.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) {
ModelUzyTavInstituc example = daoUzyTavInstituc.findById(id).get(); ModelUzyTavInstituc entity = daoUzyTavInstituc.findById(id).orElse(null);
daoUzyTavInstituc.delete(example); if (entity != null) {
entity.setUzytavinstituc_estado("I"); // Se cambia el estado a (I) inactivo
daoUzyTavInstituc.save(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