PostulanteController.java 3.36 KB
Newer Older
1 2 3
package com.roshka.controller;


4 5
import java.util.List;

6
import javax.validation.ConstraintViolationException;
7

8
import com.roshka.modelo.*;
9
import com.roshka.repositorio.ExperienciaRepository;
10
import com.roshka.repositorio.InstitucionRepository;
11
import com.roshka.repositorio.PostulanteRepository;
12
import com.roshka.repositorio.TecnologiaRepository;
13 14

import org.springframework.beans.factory.annotation.Autowired;
15 16
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
17
import org.springframework.stereotype.Controller;
18
import org.springframework.ui.Model;
19 20
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.*;
21

22 23


24 25
@Controller
public class PostulanteController {
26
    PostulanteRepository post;
27
    TecnologiaRepository tecRepo;
28
    ExperienciaRepository expRepo;
29
    InstitucionRepository institucionRepository;
30

31 32 33 34 35 36 37
    @Autowired
    public PostulanteController(PostulanteRepository post, TecnologiaRepository tecRepo, ExperienciaRepository expRepo, InstitucionRepository institucionRepository) {
        this.post = post;
        this.tecRepo = tecRepo;
        this.expRepo = expRepo;
        this.institucionRepository = institucionRepository;
    }
38

39
    @RequestMapping("/")
40
    public String index() {
41
      return "index";
42 43
    }

Joel Florentin committed
44
    @RequestMapping("/postulantes")
Joel Florentin committed
45 46
    public String postulantes(Model model,
                            @RequestParam(required = false,name = "tec")Long tecnologidaId) {
Joel Florentin committed
47
        model.addAttribute("tecnologias", tecRepo.findAll());
Joel Florentin committed
48 49
        if(tecnologidaId==null) model.addAttribute("postulantes", post.findAll());
        else model.addAttribute("postulantes", post.buscarPostulantesPorTecnologia(tecnologidaId));
Joel Florentin committed
50 51 52
        return "postulantes";
    }

53
    @RequestMapping("/postulante")
54 55
    public String getFormPostulante(Model model){
        model.addAttribute("tecnologias", tecRepo.findAll());
56 57
        model.addAttribute("modalidades", Modalidad.values());
        model.addAttribute("disponibilidades", Disponibilidad.values());
58 59
        model.addAttribute("tiposDeEstudio", TipoDeEstudio.values());
        model.addAttribute("estadosEstudio", EstadoEstudio.values());
60 61
        return "postulante-form";
    }
62

63 64
    @PostMapping(value = "/postulante",consumes = "application/json")
    public String guardarPostulante(@RequestBody Postulante postulante){
65 66 67 68 69 70 71
        System.out.println("hola");
        for(Estudio estudio: postulante.getEstudios()){
            if(institucionRepository.findByNombre(estudio.getInstitucion().getNombre())==null){
                institucionRepository.save(estudio.getInstitucion());
            }
        }
        System.out.println("hola");
72
        post.save(postulante);
73
        return "redirect:/";
74 75
    }

76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    @ExceptionHandler({MethodArgumentNotValidException.class})
    public ResponseEntity<String> handleValidationExceptions(
            MethodArgumentNotValidException ex) {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST)
                .body(ex.getMessage());
    }

    @ResponseStatus(HttpStatus.BAD_REQUEST)
    @ExceptionHandler({ConstraintViolationException.class})
    public ResponseEntity<String> handleValidationExceptions2(
            ConstraintViolationException ex) {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST)
                .body(ex.getMessage());
    }
91 92
    

93

94

95
}