CalendarController.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package es.uv.saic.web;
  2. import java.io.IOException;
  3. import java.text.ParseException;
  4. import java.util.List;
  5. import java.util.Optional;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.security.core.Authentication;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.ui.Model;
  10. import org.springframework.web.bind.annotation.DeleteMapping;
  11. import org.springframework.web.bind.annotation.GetMapping;
  12. import org.springframework.web.bind.annotation.PathVariable;
  13. import org.springframework.web.bind.annotation.PostMapping;
  14. import org.springframework.web.bind.annotation.RequestParam;
  15. import org.springframework.web.bind.annotation.ResponseBody;
  16. import es.uv.saic.shared.domain.Calendari;
  17. import es.uv.saic.shared.domain.Usuari;
  18. import es.uv.saic.shared.feign.CalendarClient;
  19. @Controller
  20. public class CalendarController {
  21. @Autowired
  22. private CalendarClient cc;
  23. @ResponseBody
  24. @PostMapping("/calendar")
  25. public Calendari calendarAddEvent(Model model, Authentication auth, @RequestParam("idProces") Integer idProces,
  26. @RequestParam("titulacions") List<String> titulacions, @RequestParam("centres") List<String> centres,
  27. @RequestParam("data") String data, @RequestParam("instancia") Optional<Integer> instancia) throws IOException, ParseException {
  28. return cc.calendarAddEvent(idProces, titulacions, centres, data, instancia);
  29. }
  30. // POST que actualiza el evento ddel calendario
  31. @ResponseBody
  32. @PostMapping("/calendar/{id}")
  33. public Calendari calendarAddEvent(Model model, Authentication auth, @PathVariable("id") Integer id,
  34. @RequestParam("idProces") Integer idProces, @RequestParam("titulacions") List<String> titulacions,
  35. @RequestParam("centres") List<String> centres, @RequestParam("data") String data) throws IOException, ParseException {
  36. return cc.calendarAddEvent(id, idProces, titulacions, centres, data);
  37. }
  38. // GET que recoge todos los eventos del calendario
  39. @ResponseBody
  40. @GetMapping("/calendar")
  41. public List<Calendari> calendarGetEvents(Model model, Authentication auth) throws IOException, ParseException {
  42. return cc.calendarGetEvents();
  43. }
  44. // DELETE que elimina un evento del calendario
  45. @ResponseBody
  46. @DeleteMapping("/calendar")
  47. public Integer calendarDeleteEvent(Model model, Authentication auth, @RequestParam("id") Integer id) throws IOException, ParseException {
  48. return cc.calendarDeleteEvent(id);
  49. }
  50. // POST para instanciar un proceso desde el calendario
  51. @ResponseBody
  52. @PostMapping("/calendar/instantiate")
  53. public List<String> instantiate(Model model, Authentication auth, @RequestParam("id") Integer id,
  54. @RequestParam("idProces") Integer idProces, @RequestParam("centres") List<Integer> centres,
  55. @RequestParam("titulacions") List<Integer> titulacions) throws IOException, ParseException {
  56. return cc.instantiate(id, idProces, centres, titulacions, ((Usuari) auth.getPrincipal()).getUsuari());
  57. }
  58. }