OrganController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. package es.uv.saic.web;
  2. import java.io.IOException;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.stream.Collectors;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.security.access.prepost.PreAuthorize;
  8. import org.springframework.security.core.Authentication;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.ui.Model;
  11. import org.springframework.web.bind.annotation.PostMapping;
  12. import org.springframework.web.bind.annotation.PutMapping;
  13. import org.springframework.web.bind.annotation.RequestParam;
  14. import org.springframework.web.bind.annotation.ResponseBody;
  15. import com.fasterxml.jackson.databind.ObjectMapper;
  16. import es.uv.saic.shared.domain.Usuari;
  17. import es.uv.saic.shared.dto.OrganDTO;
  18. import es.uv.saic.shared.feign.OrganClient;
  19. import jakarta.servlet.http.HttpSession;
  20. @Controller
  21. public class OrganController {
  22. @Autowired
  23. private OrganClient oc;
  24. // POST que buscar titulaciones que se encuentren asociadas a uno o varios
  25. // centros
  26. @PostMapping("/search/titulations")
  27. @PreAuthorize("hasRole('ROLE_R')")
  28. public String getTitulationsByCenter(Model model, Authentication auth,
  29. @RequestParam(name = "centers[]", required = false) List<Integer> centres) throws IOException {
  30. HashMap<String, Object> response = oc.getTitulationsByCenter(centres,
  31. ((Usuari) auth.getPrincipal()).getUsuari());
  32. if (response == null) {
  33. return "401";
  34. }
  35. model.addAllAttributes(response);
  36. return "components/selector_titulacions";
  37. }
  38. @PostMapping("/search/managers/titulations")
  39. @PreAuthorize("hasRole('ROLE_R')")
  40. public String getCenterTitulations(Model model, Authentication auth,
  41. @RequestParam("center") Integer centre,
  42. HttpSession session) {
  43. HashMap<String, Object> response = oc.getCenterTitulations(centre);
  44. if (response == null) {
  45. return "401";
  46. }
  47. List<Object> rawList = (List<Object>) response.get("resp_titulacions");
  48. ObjectMapper mapper = new ObjectMapper();
  49. List<OrganDTO> titulacions = rawList.stream()
  50. .map(obj -> mapper.convertValue(obj, OrganDTO.class))
  51. .collect(Collectors.toList());
  52. response.remove("resp_titulacions");
  53. model.addAllAttributes(response);
  54. model.addAttribute("sup_titulacions", titulacions);
  55. return "components/selector_titulacions_managers";
  56. }
  57. @PostMapping("/find/titulations2")
  58. @PreAuthorize("hasRole('ROLE_R')")
  59. public String getTitulationsByCenters(Model model, Authentication auth,
  60. @RequestParam("centers[]") List<Integer> centres, @RequestParam("procedure") Integer idProces)
  61. throws IOException {
  62. HashMap<String, Object> response = oc.getTitulationsByCenters(centres, idProces);
  63. if (response == null) {
  64. return "401";
  65. }
  66. model.addAllAttributes(response);
  67. return "components/selector_titulacions_managers";
  68. }
  69. @PostMapping("/find/titulations")
  70. @PreAuthorize("hasRole('ROLE_R')")
  71. public String getTitulationsByCenter(Model model, Authentication auth,
  72. @RequestParam("center") Integer centre, @RequestParam("procedure") Integer idProces) throws IOException {
  73. HashMap<String, Object> response = oc.getTitulationsByCenter(centre, idProces);
  74. if (response == null) {
  75. return "401";
  76. }
  77. model.addAllAttributes(response);
  78. return "components/selector_titulacions";
  79. }
  80. @PostMapping("/get/titulations")
  81. @PreAuthorize("hasRole('ROLE_R')")
  82. public String getAllTitulationsByCenter(Model model, Authentication auth, @RequestParam("center") Integer centre)
  83. throws IOException {
  84. HashMap<String, Object> response = oc.getAllTitulationsByCenter(centre);
  85. if (response == null) {
  86. return "401";
  87. }
  88. model.addAllAttributes(response);
  89. return "components/selector_titulacions";
  90. }
  91. @PostMapping("/find/centers")
  92. @PreAuthorize("hasRole('ROLE_R')")
  93. public String getAllCentresByAmbit(Model model, Authentication auth, @RequestParam("procedure") Integer idProces)
  94. throws IOException {
  95. HashMap<String, Object> response = oc.getAllCentresByAmbit(idProces);
  96. if (response == null) {
  97. return "401";
  98. }
  99. model.addAllAttributes(response);
  100. return "components/selector_centres";
  101. }
  102. @PutMapping("/organ/centre")
  103. @PreAuthorize("hasRole('ROLE_ADMINS')")
  104. @ResponseBody
  105. public void createNewCentre(Model model, Authentication auth,
  106. @RequestParam("codiCentro") Integer codigo,
  107. @RequestParam("nomCasCentro") String nomCas,
  108. @RequestParam("nomValCentro") String nomVal,
  109. @RequestParam("ructCentro") Integer ruct) {
  110. oc.createNewCentre(codigo, nomCas, nomVal, ruct);
  111. }
  112. @PutMapping("/organ/titulacion")
  113. @PreAuthorize("hasRole('ROLE_ADMINS')")
  114. @ResponseBody
  115. public void createNewTitulacion(Model model, Authentication auth,
  116. @RequestParam("codiTit") Integer codigo,
  117. @RequestParam("centre") Integer idCentro,
  118. @RequestParam("nomCasTit") String nomCas,
  119. @RequestParam("nomValTit") String nomVal,
  120. @RequestParam("ructTit") Integer ruct,
  121. @RequestParam("tambit") String ambit) {
  122. oc.createNewTitulacion(codigo ,idCentro, nomCas, nomVal, ruct, ambit);
  123. }
  124. @PostMapping("/organ/centre")
  125. @PreAuthorize("hasRole('ROLE_ADMINS')")
  126. @ResponseBody
  127. public Integer updateCentre(Model model, Authentication auth,
  128. @RequestParam("lugar") Integer lugar,
  129. @RequestParam("tlugar") String tlugar,
  130. @RequestParam("nomCasTit") String nomCas,
  131. @RequestParam("nomValTit") String nomVal,
  132. @RequestParam("ructTit") Integer ruct) {
  133. oc.updateCentre(lugar, tlugar, nomCas, nomVal, ruct);
  134. return ruct;
  135. }
  136. @PostMapping("/organ/titulacion")
  137. @PreAuthorize("hasRole('ROLE_ADMINS')")
  138. @ResponseBody
  139. public Integer updateTitulacion(Model model, Authentication auth,
  140. @RequestParam("lugar") Integer lugar,
  141. @RequestParam("tlugar") String tlugar,
  142. @RequestParam("nomCasTit") String nomCas,
  143. @RequestParam("nomValTit") String nomVal,
  144. @RequestParam("ructTit") Integer ruct,
  145. @RequestParam("centre") Integer idCentro,
  146. @RequestParam("tambit") String ambit) {
  147. oc.updateTitulacion(lugar, tlugar, nomCas, nomVal, ruct, idCentro, ambit);
  148. return ruct;
  149. }
  150. }