Skip to content
Snippets Groups Projects
Commit 1cd36ad8 authored by josborg's avatar josborg
Browse files

Se eliminan las respuesta al modificar las preguntas

parent 59a93909
No related branches found
No related tags found
No related merge requests found
......@@ -9,7 +9,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
@SpringBootApplication
public class EncuestaApplication {
......
......@@ -2,10 +2,15 @@ package com.uva.surveys.controller;
import java.sql.Date;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
//import java.util.Optional;
import javax.sound.sampled.AudioFormat.Encoding;
import com.uva.surveys.exception.EncuestaException;
import com.uva.surveys.model.Pregunta;
import com.uva.surveys.model.Solucion;
......@@ -195,6 +200,8 @@ public class EncuestaController {
newEncuesta.setId(id);
Encuesta encuesta = encuestaRepository.findById(id).get();
if(!encuesta.getStatus().equals(Estado.FINALIZADA)){
List<Pregunta> preguntas = preguntaRepository.findByEncuestaId(id);
encuesta.setPreguntas(preguntas);
System.out.println("preguntas1"+preguntas.size());
......@@ -220,6 +227,15 @@ public class EncuestaController {
}
preguntaRepository.delete(pregunta);
}
//Se eliminan las respuesta pues ya no tinen sentido pues las preguntas son distintas
List<Solucion> soluciones = solucionRepository.findByIdEncuesta(id);
for (Solucion solucion : soluciones){
List<Respuesta> respuestas = solucion.getRespuestas();
for (Respuesta respuesta : respuestas) {
respuestaRepository.delete(respuesta);
}
solucionRepository.delete(solucion);
}
preguntas = newEncuesta.getPreguntas();
for (Pregunta pregunta : preguntas){
List<Opcion> opciones = pregunta.getOpciones();
......@@ -231,6 +247,10 @@ public class EncuestaController {
encuestaRepository.saveAndFlush(newEncuesta);
}
return "Nuevo registro creado";
}else{
return "La encuesta esta finalizada";
}
} catch (Exception e) {
// Se deja esta parte comentada como alternativa a la gestion de errores
......@@ -262,11 +282,20 @@ public class EncuestaController {
opcionRepository.deleteAll(opciones);
}
preguntaRepository.deleteAll(preguntas);
encuestaRepository.deleteById(id);
return "Pedido eliminado: " + id;
encuestaRepository.deleteById(id);/*
//Se eliminan las respuesta pues ya no tinen sentido pues las preguntas son distintas
List<Solucion> soluciones = solucionRepository.findByIdEncuesta(id);
for (Solucion solucion : soluciones){
List<Respuesta> respuestas = solucion.getRespuestas();
for (Respuesta respuesta : respuestas) {
respuestaRepository.delete(respuesta);
}
solucionRepository.delete(solucion);
}*/
return "Encuaesta eliminada: " + id;
} else {
return "Pedido con id: " + id + " no existe";
return "Encuaesta con id: " + id + " no existe";
}
} catch (Exception e) {
throw new EncuestaException("Error al elimiar el registro.");
......@@ -284,6 +313,13 @@ public class EncuestaController {
return preguntas;
}*/
public static String formatDate(LocalDateTime date) {
//DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm");
String str = date.format(dtf);
return str;
}
/**
* Crea una solucion para la encuesta con id param{id} y el contenido de
* un json mediante una peticion POST:/encuestas/{id}
......@@ -296,15 +332,18 @@ public class EncuestaController {
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE, value = "/{id}")
public String newSolucion(@RequestBody Solucion newSolucion, @PathVariable Integer id) {
try {
String date = LocalDate.now().toString();
ZoneOffset utc = ZoneOffset.UTC;
String date = formatDate(LocalDateTime.now(utc));
Encuesta encuesta = encuestaRepository.findById(id).get();
System.out.println("date: "+date+", encuesta.getInicio():"+encuesta.getInicio()+"encuesta.getFin(): "+encuesta.getFin());
System.out.println("encuesta.getInicio()) <= 0 -->"+(date.compareTo(encuesta.getInicio()) <= 0)+" || date.compareTo(encuesta.getFin()) >= 0 -->"+(date.compareTo(encuesta.getFin()) >= 0));
if(date.compareTo(encuesta.getInicio()) <= 0 && date.compareTo(encuesta.getFin()) >= 0 ){ // no abierta
System.out.println("La encuasta no esta abierta");
return "La encuasta no esta abierta";
if(date.compareTo(encuesta.getInicio()) <= 0 || date.compareTo(encuesta.getFin()) >= 0 ){ // no abierta
System.out.println("La encuesta no esta abierta");
return "La encuesta no esta abierta";
}else if (encuesta.getStatus().equals(Estado.ABIERTA)){
System.out.println("La encuasta esta abierta");
System.out.println("La encuesta esta abierta");
List<Respuesta> respuestas = newSolucion.getRespuestas();
ArrayList<Integer> idOpcionesCorrectas = new ArrayList<>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment