Se realizan los servicios de ModelUzyTavActaResponsa

parent 2f6732e4
package ec.edu.espe.movilidad.MovilidadWS.Controller;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActaResponsa;
import ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActaResponsa.IServiceUzyTavActaResponsa;
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+"/actaresponsa")
public class UzyTavActaResponsaController {
private final IServiceUzyTavActaResponsa serviceUzyTavActaResponsa;
public UzyTavActaResponsaController(IServiceUzyTavActaResponsa serviceUzyTavActaResponsa) {
this.serviceUzyTavActaResponsa = serviceUzyTavActaResponsa;
}
@GetMapping("/exampleFindId/{id}")
public DtoUzyTavActaResponsa ListarPorID(@PathVariable Long id) {
return serviceUzyTavActaResponsa.ListarPorID(id);
}
@GetMapping("/getAll")
public List<DtoUzyTavActaResponsa> ListarRegistros() {
return serviceUzyTavActaResponsa.ListarRegistros();
}
@PostMapping("/guardar")
public DtoUzyTavActaResponsa guardar(@Valid @RequestBody DtoUzyTavActaResponsa dtoUzyTavActaResponsa) {
return serviceUzyTavActaResponsa.guardar(dtoUzyTavActaResponsa);
}
@PutMapping("/editar/{id}")
public DtoUzyTavActaResponsa editar(@PathVariable Long id, @Valid @RequestBody DtoUzyTavActaResponsa dtoUzyTavActaResponsa) {
return serviceUzyTavActaResponsa.editar(id,dtoUzyTavActaResponsa);
}
@DeleteMapping("/eliminar/{id}")
public ResponseEntity<String> eliminar(@PathVariable Long id) {
boolean eliminado = serviceUzyTavActaResponsa.eliminar(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
}
...@@ -5,17 +5,17 @@ import lombok.Data; ...@@ -5,17 +5,17 @@ import lombok.Data;
import javax.validation.constraints.Pattern; import javax.validation.constraints.Pattern;
import javax.validation.constraints.Positive; import javax.validation.constraints.Positive;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.time.LocalDate; import java.time.LocalDateTime;
@Data @Data
public class DtoUzyTavActaResponsa { public class DtoUzyTavActaResponsa {
@Positive(message = "El campo uzytavactaresponsa_code debe ser un número positivo") @Positive(message = "El campo uzytavactaresponsa_code debe ser un número positivo")
private Long uzytavactaresponsa_code; private Long uzytavactaresponsa_code;
@Positive(message = "El campo uzytavactaresponsa_secuencial debe ser un número positivo") @Positive(message = "El campo uzytavactaresponsa_secuencial debe ser un número positivo")
private Long uzytavactaresponsa_secuencial; private Integer uzytavactaresponsa_secuencial;
private LocalDate uzytavactaresponsa_fecha_crea ; private LocalDateTime uzytavactaresponsa_fecha_crea ;
@Positive(message = "El campo uzytusuario_id_crea debe ser un número positivo") @Positive(message = "El campo uzytusuario_id_crea debe ser un número positivo")
private Long uzytusuario_id_crea; private Integer uzytusuario_id_crea;
@Size(max = 1) @Size(max = 1)
@Pattern(regexp = "[SN]", message = "El campo uzytavactaresponsa_cerrado solo puede ser Cerrado S:si / N:no") @Pattern(regexp = "[SN]", message = "El campo uzytavactaresponsa_cerrado solo puede ser Cerrado S:si / N:no")
private String uzytavactaresponsa_cerrado; private String uzytavactaresponsa_cerrado;
......
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.DtoUzyTavActaResponsa; import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActaResponsa;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavActaResponsa; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavActaResponsa;
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 UzyTavActaResponsaMapper { public class UzyTavActaResponsaMapper {
private final ModelMapper modelMapper; private final ModelMapper modelMapper;
...@@ -20,4 +24,9 @@ public class UzyTavActaResponsaMapper { ...@@ -20,4 +24,9 @@ public class UzyTavActaResponsaMapper {
public ModelUzyTavActaResponsa dtoToEntity(DtoUzyTavActaResponsa dto) { public ModelUzyTavActaResponsa dtoToEntity(DtoUzyTavActaResponsa dto) {
return modelMapper.map(dto, ModelUzyTavActaResponsa.class); return modelMapper.map(dto, ModelUzyTavActaResponsa.class);
} }
public List<DtoUzyTavActaResponsa> entitiesToDtos(List<ModelUzyTavActaResponsa> entities) {
return entities.stream()
.map(this::entityToDto)
.collect(Collectors.toList());
}
} }
...@@ -8,7 +8,7 @@ import java.util.LinkedHashSet; ...@@ -8,7 +8,7 @@ import java.util.LinkedHashSet;
import java.util.Set; import java.util.Set;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.time.LocalDate; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -25,7 +25,7 @@ public class ModelUzyTavActaResponsa { ...@@ -25,7 +25,7 @@ public class ModelUzyTavActaResponsa {
private Integer uzytavactaresponsa_secuencial; private Integer uzytavactaresponsa_secuencial;
@Column(name = "uzytavactaresponsa_fecha_crea") @Column(name = "uzytavactaresponsa_fecha_crea")
private LocalDate uzytavactaresponsa_fecha_crea; private LocalDateTime uzytavactaresponsa_fecha_crea;
@Column(name = "uzytusuario_id_crea") @Column(name = "uzytusuario_id_crea")
private Integer uzytusuario_id_crea; private Integer uzytusuario_id_crea;
......
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActaResponsa;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActaResponsa;
import java.util.List;
public interface IServiceUzyTavActaResponsa {
DtoUzyTavActaResponsa ListarPorID(Long id);
List<DtoUzyTavActaResponsa> ListarRegistros();
DtoUzyTavActaResponsa guardar(DtoUzyTavActaResponsa dtoUzyTavActaResponsa);
DtoUzyTavActaResponsa editar(Long id, DtoUzyTavActaResponsa dtoUzyTavActaResponsa);
boolean eliminar(Long id);
}
package ec.edu.espe.movilidad.MovilidadWS.Service.UzyTavActaResponsa;
import ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTavActaResponsa;
import ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTavActaResponsa;
import ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException;
import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTavActaResponsaMapper;
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTavActaResponsa;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceUzyTavActaResponsa implements IServiceUzyTavActaResponsa {
private final DaoUzyTavActaResponsa daoUzyTavActaResponsa;
private final UzyTavActaResponsaMapper mapper;
public ServiceUzyTavActaResponsa(DaoUzyTavActaResponsa daoUzyTavActaResponsa, UzyTavActaResponsaMapper mapper) {
this.daoUzyTavActaResponsa = daoUzyTavActaResponsa;
this.mapper = mapper;
}
@Override
public DtoUzyTavActaResponsa ListarPorID(Long id) {
if (id <= 0) {
throw new IllegalArgumentException("El parámetro 'id' debe ser un valor positivo.");
}
try {
ModelUzyTavActaResponsa entity = daoUzyTavActaResponsa.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<DtoUzyTavActaResponsa> ListarRegistros() {
try {
List<ModelUzyTavActaResponsa> entities = daoUzyTavActaResponsa.findAll();
return mapper.entitiesToDtos(entities);
} catch (Exception ex) {
throw new RuntimeException("Error al listar los registros: " + ex.getMessage());
}
}
@Override
public DtoUzyTavActaResponsa guardar(DtoUzyTavActaResponsa dtoUzyTavActaResponsa) {
try {
ModelUzyTavActaResponsa entity = mapper.dtoToEntity(dtoUzyTavActaResponsa);
ModelUzyTavActaResponsa nuevoEntity = daoUzyTavActaResponsa.save(entity);
return mapper.entityToDto(nuevoEntity);
}
catch (Exception ex) {
throw new RuntimeException("Error al guardar el registro: " + ex.getMessage());
}
}
@Override
public DtoUzyTavActaResponsa editar(Long id, DtoUzyTavActaResponsa dtoUzyTavActaResponsa) {
if (id <= 0) {
throw new IllegalArgumentException("El ID del registro debe ser válido y mayor que cero.");
}
try {
ModelUzyTavActaResponsa entity = daoUzyTavActaResponsa.findById(id).get();
if (entity != null) {
if(dtoUzyTavActaResponsa.getUzytavactaresponsa_secuencial()!=null){
entity.setUzytavactaresponsa_secuencial(dtoUzyTavActaResponsa.getUzytavactaresponsa_secuencial());
}
if(dtoUzyTavActaResponsa.getUzytavactaresponsa_fecha_crea()!=null){
entity.setUzytavactaresponsa_fecha_crea(dtoUzyTavActaResponsa.getUzytavactaresponsa_fecha_crea());
}
if(dtoUzyTavActaResponsa.getUzytusuario_id_crea() !=null){
entity.setUzytusuario_id_crea(dtoUzyTavActaResponsa.getUzytusuario_id_crea());
}
if(dtoUzyTavActaResponsa.getUzytavactaresponsa_cerrado() !=null){
entity.setUzytavactaresponsa_cerrado(dtoUzyTavActaResponsa.getUzytavactaresponsa_cerrado());
}
if(dtoUzyTavActaResponsa.getUzytavactaresponsa_doc_nom() !=null){
entity.setUzytavactaresponsa_doc_nom(dtoUzyTavActaResponsa.getUzytavactaresponsa_doc_nom());
}
if(dtoUzyTavActaResponsa.getUzytavactaresponsa_doc_url() !=null){
entity.setUzytavactaresponsa_doc_url(dtoUzyTavActaResponsa.getUzytavactaresponsa_doc_url());
}
ModelUzyTavActaResponsa updatedEntity = daoUzyTavActaResponsa.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 {
ModelUzyTavActaResponsa entity = daoUzyTavActaResponsa.findById(id).orElseThrow(() -> new ResourceNotFoundException("Registro no encontrado con ID: " + id));
if (entity != null) {
daoUzyTavActaResponsa.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