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

Solucion de bugs PUT y envio de solución

parent 02d3b1c1
Branches
No related tags found
No related merge requests found
......@@ -18,6 +18,7 @@ import com.uva.surveys.repository.EncuestaRepository;
import com.uva.surveys.repository.LinkRepository;
import com.uva.surveys.repository.OpcionRepository;
import com.uva.surveys.repository.PreguntaRepository;
import com.uva.surveys.repository.RespuestaRepository;
import com.uva.surveys.repository.SolucionRepository;
import org.springframework.web.bind.annotation.RestController;
......@@ -43,16 +44,19 @@ public class EncuestaController {
private final OpcionRepository opcionRepository;
private final SolucionRepository solucionRepository;
private final RespuestaRepository respuestaRepository;
private final LinkRepository linkRepository;
EncuestaController(EncuestaRepository encuestaRepository, PreguntaRepository preguntaRepository,
OpcionRepository opcionRepository, SolucionRepository solucionRepository, LinkRepository linkRepository) {
OpcionRepository opcionRepository, SolucionRepository solucionRepository, LinkRepository linkRepository,
RespuestaRepository respuestaRepository) {
this.encuestaRepository = encuestaRepository;
this.preguntaRepository = preguntaRepository;
this.opcionRepository = opcionRepository;
this.solucionRepository = solucionRepository;
this.linkRepository = linkRepository;
this.respuestaRepository = respuestaRepository;
}
/**
......@@ -120,10 +124,13 @@ public class EncuestaController {
public Encuesta getEncuestaById(@PathVariable int id) {
Encuesta encuesta = encuestaRepository.findById(id).orElseThrow(() -> new EncuestaException("Sin resultado"));
List<Pregunta> preguntas = preguntaRepository.findByEncuestaId(id);
System.out.println("Preguntas size: "+ preguntas.size());
for (Pregunta pregunta : preguntas) {
for (Opcion opcion : pregunta.getOpciones()) {
opcion.setCorrect(false); // Revisar y refacotrizar esta parte
opcion.setCorrect(false);
opcion.setPregunta(pregunta);
}
pregunta.setEncuesta(encuesta);
}
encuesta.setPreguntas(preguntas);
return encuesta;
......@@ -132,6 +139,15 @@ public class EncuestaController {
@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE, value = { "/{id}/full" })
public Encuesta getEncuestaByIdFull(@PathVariable int id) {
Encuesta encuesta = encuestaRepository.findById(id).orElseThrow(() -> new EncuestaException("Sin resultado"));
List<Pregunta> preguntas = preguntaRepository.findByEncuestaId(id);
System.out.println("Preguntas size: "+ preguntas.size());
for (Pregunta pregunta : preguntas) {
for (Opcion opcion : pregunta.getOpciones()) {
opcion.setPregunta(pregunta);
}
pregunta.setEncuesta(encuesta);
}
encuesta.setPreguntas(preguntas);
return encuesta;
}
......@@ -173,11 +189,21 @@ public class EncuestaController {
public String putEncuesta(@PathVariable Integer id, @RequestBody Encuesta newEncuesta) {
try {
List<Pregunta> preguntas = newEncuesta.getPreguntas();
Encuesta encuesta = encuestaRepository.findById(id).get();
List<Pregunta> preguntas = encuesta.getPreguntas();
for (Pregunta pregunta : preguntas){
List<Opcion> opciones = pregunta.getOpciones();
for (Opcion opcion : opciones) {
opcionRepository.delete(opcion);
}
preguntaRepository.delete(pregunta);
}
newEncuesta.setId(id);
preguntas = newEncuesta.getPreguntas();
for (Pregunta pregunta : preguntas){
List<Opcion> opciones = pregunta.getOpciones();
for (Opcion opcion : opciones) {
opcion.setCorrect(opcionRepository.findById(opcion.getId()).get().getCorrect());
opcion.setPregunta(pregunta);
}
pregunta.setEncuesta(newEncuesta);
......@@ -231,11 +257,11 @@ public class EncuestaController {
* sabendo si son correctas o no
* @param id
* @return
*/
private List<Pregunta> getFullPreguntasByIdEncuesta(int id) {
List<Pregunta> preguntas = preguntaRepository.findByEncuestaId(id);
return preguntas;
}
}*/
/**
* Crea una solucion para la encuesta con id param{id} y el contenido de
......@@ -251,17 +277,18 @@ public class EncuestaController {
try {
Date date = Date.valueOf(LocalDate.now());
Encuesta encuesta = encuestaRepository.findById(newSolucion.getIdEncuesta()).get();
if(date.after(encuesta.getInicio()) && date.before(encuesta.getFin())){ // no abierta
Encuesta encuesta = encuestaRepository.findById(id).get();
if(date.before(encuesta.getInicio()) && date.after(encuesta.getFin())){ // no abierta
System.out.println("La encuasta no esta abierta");
return "La encuasta no esta abierta";
}else if (encuesta.getStatus().equals(Estado.ABIERTA)){
System.out.println("La encuasta esta abierta");
List<Respuesta> respuestas = newSolucion.getRespuestas();
ArrayList<Integer> idOpcionesCorrectas = new ArrayList<>();
List<Pregunta> preguntas = getFullPreguntasByIdEncuesta(id);
List<Pregunta> preguntas = getEncuestaByIdFull(id).getPreguntas();
for (Pregunta pregunta : preguntas) {
for (Opcion opcion : pregunta.getOpciones()) {
if (opcion.getCorrect()) {
......@@ -293,7 +320,8 @@ public class EncuestaController {
e.printStackTrace();
throw new EncuestaException("Error al crear el nuevo registro.");
}
return null;
System.out.println("Error");
return "Error";
}
......@@ -332,9 +360,31 @@ public class EncuestaController {
return soluciones;
}*/
@DeleteMapping("/{id}/soluciones")
public String deleteSolucion(@PathVariable Integer id) {
try {
if (encuestaRepository.existsById(id)) {
List<Solucion> soluciones = solucionRepository.findByIdEncuesta(id);
for(Solucion solucion : soluciones){
for(Respuesta respuesta: solucion.getRespuestas()){
respuestaRepository.delete(respuesta);
}
solucionRepository.delete(solucion);
}
return "Pedido eliminado: " + id;
} else {
return "Pedido con id: " + id + " no existe";
}
} catch (Exception e) {
throw new EncuestaException("Error al elimiar el registro.");
}
}
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE, value = "/link")
public String newEncuesta(@RequestBody Link link) {
public String newLink(@RequestBody Link link) {
try {
//Gurdar que la encuesta con codigo code a sido pulicada en el servidor guild
......
package com.uva.surveys.repository;
import com.uva.surveys.model.Respuesta;
import org.springframework.data.jpa.repository.JpaRepository;
public interface RespuestaRepository extends JpaRepository<Respuesta, Integer> {
}
\ No newline at end of file
......@@ -16,6 +16,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -84,7 +85,7 @@ public class PollController {
//headers.set("X-Request-Source", "Desktop");
// build the request
HttpEntity request = new HttpEntity(headers);
HttpEntity request = new HttpEntity(body, headers);
// make an HTTP GET request with headers
ResponseEntity<String> response = restTemplate.exchange(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment