Se realizan los ServiceUzyTavDoCompar de ModelUzyTavDoCompar

parent d5eb27e4
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDoCompar;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDoCompar.IServiceUzyTavDoCompar;
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 + "/docompar")
public class UzyTavDoComparController {
private final IServiceUzyTavDoCompar serviceUzyTavDoCompar;
public UzyTavDoComparController(IServiceUzyTavDoCompar serviceUzyTavDoCompar) {
this.serviceUzyTavDoCompar = serviceUzyTavDoCompar;
}
@GetMapping("/exampleFindId/{id}")
public DtoUzyTavDoCompar ListarPorID(@PathVariable Long id) {
return serviceUzyTavDoCompar.ListarPorID(id);
}
@GetMapping("/getAll")
public List<DtoUzyTavDoCompar> ListarRegistros() {
return serviceUzyTavDoCompar.ListarRegistros();
}
@PostMapping("/guardar")
public DtoUzyTavDoCompar guardar(@Valid @RequestBody DtoUzyTavDoCompar dtoUzyTavDoCompar) {
return serviceUzyTavDoCompar.guardar(dtoUzyTavDoCompar);
}
@PutMapping("/editar/{id}")
public DtoUzyTavDoCompar editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTavDoCompar dtoUzyTavDoCompar) {
return serviceUzyTavDoCompar.editar(id, dtoUzyTavDoCompar);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id) {
boolean eliminado = serviceUzyTavDoCompar.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 java.util.Date;
import javax.validation.constraints.Positive;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
@Data @Data
public class DtoUzyTavDoCompar { public class DtoUzyTavDoCompar {
private Long id; @Positive(message = "El campo uzytavdocompar_code debe ser un número positivo")
private Long UZYTAVINSTPROY_ID; private Long uzytavdocompar_code;
private String uzytavdocomparNombreDoc; @Positive(message = "El campo uzytavinstproy_id debe ser un número positivo")
private String uzytavdocomparNombreUrl; private Long uzytavinstproy_id;
private Date uzytavdocomparFechaCrea; @Size(max = 100)
private String uzytavdocompar_nombre_doc;
@Size(max = 100)
private String uzytavdocompar_nombre_url;
private LocalDateTime uzytavdocompar_fecha_crea;
} }
package ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDoCompar;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavDoCompar;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class UzyTavDoComparMapper {
private final ModelMapper mapper;
public UzyTavDoComparMapper(ModelMapper mapper) {
this.mapper = mapper;
}
public DtoUzyTavDoCompar entityToDto(ModelUzyTavDoCompar entity) {
return mapper.map(entity, DtoUzyTavDoCompar.class);
}
public ModelUzyTavDoCompar dtoToEntity(DtoUzyTavDoCompar dto) {
return mapper.map(dto, ModelUzyTavDoCompar.class);
}
public List<DtoUzyTavDoCompar> entitiesToDtos(List<ModelUzyTavDoCompar> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
}
...@@ -5,31 +5,33 @@ import lombok.Setter; ...@@ -5,31 +5,33 @@ import lombok.Setter;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@Entity @Entity
@Table(name = "UZYTAVDOCOMPAR", schema = "UTIC1") @Table(name = "uzytavdocompar", schema = "UTIC1")
public class ModelUzyTavDoCompar { public class ModelUzyTavDoCompar {
@Id @Id
@Column(name = "UZYTAVDOCOMPAR_CODE") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavdocompar_seq")
private Long id; @SequenceGenerator(name = "uzytavdocompar_seq", sequenceName = "SEQ_UZYTAVDOCOMPAR", allocationSize = 1)
@Column(name = "uzytavdocompar_code")
private Long uzytavdocompar_code;
//RELACIÓN CON ModelUzyTavInstProy TABLA PADRE //RELACIÓN CON ModelUzyTavInstProy TABLA PADRE
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "UZYTAVINSTPROY_ID") @JoinColumn(name = "uzytavinstproy_id")
private ModelUzyTavInstProy uzytavinstproy; private ModelUzyTavInstProy uzytavinstproy;
@Size(max = 100) @Size(max = 100)
@Column(name = "UZYTAVDOCOMPAR_NOMBRE_DOC", length = 100) @Column(name = "uzytavdocompar_nombre_doc", length = 100)
private String uzytavdocomparNombreDoc; private String uzytavdocompar_nombre_doc;
@Size(max = 100) @Size(max = 100)
@Column(name = "UZYTAVDOCOMPAR_NOMBRE_URL", length = 100) @Column(name = "uzytavdocompar_nombre_url", length = 100)
private String uzytavdocomparNombreUrl; private String uzytavdocompar_nombre_url;
@Column(name = "UZYTAVDOCOMPAR_FECHA_CREA") @Column(name = "uzytavdocompar_fecha_crea")
private Date uzytavdocomparFechaCrea; private LocalDateTime uzytavdocompar_fecha_crea;
} }
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDoCompar;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDoCompar;
import java.util.List;
public interface IServiceUzyTavDoCompar {
DtoUzyTavDoCompar ListarPorID(Long id);
List<DtoUzyTavDoCompar> ListarRegistros();
DtoUzyTavDoCompar guardar(DtoUzyTavDoCompar dtoUzyTavDoCompar);
DtoUzyTavDoCompar editar(Long id, DtoUzyTavDoCompar dtoUzyTavDoCompar);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavDoCompar;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavDoCompar;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavDoCompar;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavDoComparMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavDoCompar;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavDoCompar implements IServiceUzyTavDoCompar {
private final DaoUzyTavDoCompar daoUzyTavDoCompar;
private final UzyTavDoComparMapper mapper;
public ServiceUzyTavDoCompar(DaoUzyTavDoCompar daoUzyTavDoCompar, UzyTavDoComparMapper mapper) {
this.daoUzyTavDoCompar = daoUzyTavDoCompar;
this.mapper = mapper;
}
private static final String MESSAGE = "No se encontró el registro con ID: ";
@Override
public DtoUzyTavDoCompar ListarPorID(Long id) {
if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
ModelUzyTavDoCompar entity = daoUzyTavDoCompar.findById(id)
.orElseThrow(() -> new ResourceNotFoundException(MESSAGE + 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<DtoUzyTavDoCompar> ListarRegistros() {
try {
List<ModelUzyTavDoCompar> entities = daoUzyTavDoCompar.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
}
@Override
public DtoUzyTavDoCompar guardar(DtoUzyTavDoCompar dtoUzyTavDoCompar) {
try {
ModelUzyTavDoCompar entity = mapper.dtoToEntity(dtoUzyTavDoCompar);
ModelUzyTavDoCompar nuevoEntity = daoUzyTavDoCompar.save(entity);
return mapper.entityToDto(nuevoEntity);
} catch (DataIntegrityViolationException ex) {
throw ex;
} catch (Exception ex) {
// Manejo para otras excepciones
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
}
@Override
public DtoUzyTavDoCompar editar(Long id, DtoUzyTavDoCompar dtoUzyTavDoCompar) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavDoCompar entity = daoUzyTavDoCompar.findById(id)
.orElseThrow(() -> new ResourceNotFoundException(MESSAGE + id));
if (entity != null) {
if (dtoUzyTavDoCompar.getUzytavdocompar_nombre_doc() != null) {
entity.setUzytavdocompar_nombre_doc(dtoUzyTavDoCompar.getUzytavdocompar_nombre_doc());
}
if (dtoUzyTavDoCompar.getUzytavdocompar_nombre_url() != null) {
entity.setUzytavdocompar_nombre_url(dtoUzyTavDoCompar.getUzytavdocompar_nombre_url());
}
if (dtoUzyTavDoCompar.getUzytavdocompar_fecha_crea() != null) {
entity.setUzytavdocompar_fecha_crea(dtoUzyTavDoCompar.getUzytavdocompar_fecha_crea());
}
ModelUzyTavDoCompar updatedEntity = daoUzyTavDoCompar.save(entity);
return mapper.entityToDto(updatedEntity);
} else {
throw new ResourceNotFoundException(MESSAGE + id);
}
} catch (Exception e) {
throw new RuntimeException("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 {
ModelUzyTavDoCompar entity = daoUzyTavDoCompar.findById(id)
.orElseThrow(() -> new ResourceNotFoundException(MESSAGE + id));
if (entity != null) {
daoUzyTavDoCompar.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