Se realiza un servicio de eliminar registros hijos en una tabla recursiva en el…

Se realiza un servicio de eliminar registros hijos en una tabla recursiva en el ServiceUzytavObjetivoPrograma
parent be19bcad
...@@ -71,5 +71,15 @@ public class UzytavObjetivoProgramaController { ...@@ -71,5 +71,15 @@ public class UzytavObjetivoProgramaController {
return ResponseEntity.notFound().build(); return ResponseEntity.notFound().build();
} }
} }
@DeleteMapping("/eliminarHijo/{id}")
public ResponseEntity<String> eliminarHijo(@PathVariable Long id){
boolean eliminado = serviceUzytavObjetivoPrograma.eliminarHijo(id);
if (eliminado) {
return ResponseEntity.ok("El registro se eliminó exitosamente.");
} else {
return ResponseEntity.notFound().build();
}
}
} }
...@@ -34,8 +34,8 @@ public class SecurityConfig { ...@@ -34,8 +34,8 @@ public class SecurityConfig {
.httpBasic().authenticationEntryPoint(jwtEntryPoint) .httpBasic().authenticationEntryPoint(jwtEntryPoint)
.and() .and()
.authorizeRequests() .authorizeRequests()
// .antMatchers("/api/v1.0/**").authenticated() .antMatchers("/api/v1.0/**").authenticated()
.antMatchers("/api/v1.0/**").permitAll() //.antMatchers("/api/v1.0/**").permitAll()
// .antMatchers("/api/v1.0/**").hasRole("Administrador del Sistema") // Asignar API a rol ADMIN // .antMatchers("/api/v1.0/**").hasRole("Administrador del Sistema") // Asignar API a rol ADMIN
.and() .and()
.sessionManagement() .sessionManagement()
......
...@@ -17,4 +17,5 @@ public interface IServiceUzytavObjetivoPrograma { ...@@ -17,4 +17,5 @@ public interface IServiceUzytavObjetivoPrograma {
DtoUzytavObjetivoPrograma editar( Long id, DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma); DtoUzytavObjetivoPrograma editar( Long id, DtoUzytavObjetivoPrograma dtoUzytavObjetivoPrograma);
boolean eliminar(Long id); boolean eliminar(Long id);
DtoUzytavObjetivoPrograma eliminarFechasPorId(Long id); DtoUzytavObjetivoPrograma eliminarFechasPorId(Long id);
boolean eliminarHijo (Long idHijo);
} }
...@@ -8,6 +8,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzytavObjetivoP ...@@ -8,6 +8,7 @@ import ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzytavObjetivoP
import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzytavObjetivoPrograma; import ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzytavObjetivoPrograma;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List; import java.util.List;
@Service @Service
...@@ -116,6 +117,7 @@ public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoProg ...@@ -116,6 +117,7 @@ public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoProg
return false; return false;
} }
@Override
public DtoUzytavObjetivoPrograma eliminarFechasPorId(Long id) { public DtoUzytavObjetivoPrograma eliminarFechasPorId(Long id) {
ModelUzytavObjetivoPrograma entity = daoUzytavObjetivoPrograma.findById(id) ModelUzytavObjetivoPrograma entity = daoUzytavObjetivoPrograma.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id)); .orElseThrow(() -> new ResourceNotFoundException("No se encontró el registro con ID: " + id));
...@@ -125,4 +127,20 @@ public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoProg ...@@ -125,4 +127,20 @@ public class ServiceUzytavObjetivoPrograma implements IServiceUzytavObjetivoProg
ModelUzytavObjetivoPrograma updatedEntity = daoUzytavObjetivoPrograma.save(entity); ModelUzytavObjetivoPrograma updatedEntity = daoUzytavObjetivoPrograma.save(entity);
return mapper.entityToDto(updatedEntity); return mapper.entityToDto(updatedEntity);
} }
@Override
@Transactional
public boolean eliminarHijo(Long idHijo) {
ModelUzytavObjetivoPrograma hijo = daoUzytavObjetivoPrograma.findById(idHijo).orElse(null);
if (hijo != null) {
ModelUzytavObjetivoPrograma padre = hijo.getUzytavobjetivo_programaPadre();
if (padre != null) {
padre.getModelUzytavObjetivoProgramaSet().remove(hijo);
daoUzytavObjetivoPrograma.delete(hijo);
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