Se realizan los servicios de ModelUzyTavTipres

parent affc66b7
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavTipres;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavTipres.IServiceUzyTavTipres;
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+"/tavtipres")
public class UzyTavTipresController {
private final IServiceUzyTavTipres serviceUzyTavTipres;
public UzyTavTipresController(IServiceUzyTavTipres serviceUzyTavTipres) {
this.serviceUzyTavTipres = serviceUzyTavTipres;
}
@GetMapping("/exampleFindId/{id}")
public DtoUzyTavTipres ListarPorID(@PathVariable Long id) {
return serviceUzyTavTipres.ListarPorID(id);
}
@GetMapping("/getAll")
public List<DtoUzyTavTipres> ListarRegistros() {
return serviceUzyTavTipres.ListarRegistros();
}
@PostMapping("/guardar")
public DtoUzyTavTipres guardar(@Valid @RequestBody DtoUzyTavTipres dtoUzyTavTipres) {
return serviceUzyTavTipres.guardar(dtoUzyTavTipres);
}
@PutMapping("/editar/{id}")
public DtoUzyTavTipres editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTavTipres dtoUzyTavTipres) {
return serviceUzyTavTipres.editar(id, dtoUzyTavTipres);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id) {
boolean eliminado = serviceUzyTavTipres.eliminar(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
}
package ec.edu.espe.movilidad.MovilidadWS.Dto; package ec.edu.espe.movilidad.MovilidadWS.Dto;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
@Data @Data
public class DtoUzyTavTipres { public class DtoUzyTavTipres {
private Long uzytavtipres_id; private Long uzytavtipres_id;
private String uzytavtipres_descrip; private String uzytavtipres_descrip;
private Long uzytavtipres_orden; private Integer uzytavtipres_orden;
} }
...@@ -5,6 +5,9 @@ import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavTipres; ...@@ -5,6 +5,9 @@ import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavTipres;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Component @Component
public class UzyTavTipresMapper { public class UzyTavTipresMapper {
private final ModelMapper modelMapper; private final ModelMapper modelMapper;
...@@ -20,4 +23,9 @@ public class UzyTavTipresMapper { ...@@ -20,4 +23,9 @@ public class UzyTavTipresMapper {
public ModelUzyTavTipres dtoToEntity(DtoUzyTavTipres dto) { public ModelUzyTavTipres dtoToEntity(DtoUzyTavTipres dto) {
return modelMapper.map(dto, ModelUzyTavTipres.class); return modelMapper.map(dto, ModelUzyTavTipres.class);
} }
public List<DtoUzyTavTipres> entitiesToDtos(List<ModelUzyTavTipres> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
} }
...@@ -18,13 +18,13 @@ public class ModelUzyTavTipres { ...@@ -18,13 +18,13 @@ public class ModelUzyTavTipres {
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavtipres_seq") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavtipres_seq")
@SequenceGenerator(name = "uzytavtipres_seq", sequenceName = "SEQ_UZYTAVTIPRES", allocationSize = 1) @SequenceGenerator(name = "uzytavtipres_seq", sequenceName = "SEQ_UZYTAVTIPRES", allocationSize = 1)
@Column(name = "uzytavtipres_id") @Column(name = "uzytavtipres_id")
private Long id; private Long uzytavtipres_id;
@Column(name = "uzytavtipres_descrip", length = 50) @Column(name = "uzytavtipres_descrip", length = 50)
private String descripcion; private String uzytavtipres_descrip;
@Column(name = "uzytavtipres_orden") @Column(name = "uzytavtipres_orden")
private Integer orden; private Integer uzytavtipres_orden;
//RELACIÓN CON RESPONSABLE_PROG-TABLA HIJA //RELACIÓN CON RESPONSABLE_PROG-TABLA HIJA
@JsonIgnore @JsonIgnore
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavTipres;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavTipres;
import java.util.List;
public interface IServiceUzyTavTipres {
DtoUzyTavTipres ListarPorID(Long id);
List<DtoUzyTavTipres> ListarRegistros();
DtoUzyTavTipres guardar(DtoUzyTavTipres dtoUzyTavTipres);
DtoUzyTavTipres editar(Long id, DtoUzyTavTipres dtoUzyTavTipres);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavTipres;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavTipres;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavTipres;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavTipresMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavTipres;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavTipres implements IServiceUzyTavTipres{
private final DaoUzyTavTipres daoUzyTavTipres;
private final UzyTavTipresMapper mapper;
public ServiceUzyTavTipres(DaoUzyTavTipres daoUzyTavTipres, UzyTavTipresMapper mapper) {
this.daoUzyTavTipres = daoUzyTavTipres;
this.mapper = mapper;
}
@Override
public DtoUzyTavTipres ListarPorID(Long id) {
if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
ModelUzyTavTipres entity = daoUzyTavTipres.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + 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<DtoUzyTavTipres> ListarRegistros() {
try {
List<ModelUzyTavTipres> entities = daoUzyTavTipres.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
}
@Override
public DtoUzyTavTipres guardar(DtoUzyTavTipres dtoUzyTavTipres) {
try {
ModelUzyTavTipres entity = mapper.dtoToEntity(dtoUzyTavTipres);
ModelUzyTavTipres nuevoEntity = daoUzyTavTipres.save(entity);
return mapper.entityToDto(nuevoEntity);
}
catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
}
@Override
public DtoUzyTavTipres editar(Long id, DtoUzyTavTipres dtoUzyTavTipres) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavTipres entity = daoUzyTavTipres.findById(id).get();
if (entity != null) {
if(dtoUzyTavTipres.getUzytavtipres_descrip()!=null){
entity.setUzytavtipres_descrip(dtoUzyTavTipres.getUzytavtipres_descrip());
}
if(dtoUzyTavTipres.getUzytavtipres_orden() !=null){
entity.setUzytavtipres_orden(dtoUzyTavTipres.getUzytavtipres_orden());
}
ModelUzyTavTipres updatedEntity = daoUzyTavTipres.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) {
if (id == null || id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavTipres entity = daoUzyTavTipres.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTavTipres.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