package es.uv.saic.web; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import es.uv.saic.domain.IndicadorEnquesta; import es.uv.saic.domain.Organ; import es.uv.saic.dto.OrganDTO; import es.uv.saic.dto.OrganTransferDTO; import es.uv.saic.service.IndicadorEnquestaService; import es.uv.saic.service.OrganService; @RestController public class OrganController { @Autowired private OrganService os; @Autowired private IndicadorEnquestaService ies; /* * Endpoint for getTitulacions */ @GetMapping("/getTitulacionsWithCentre") public List getTitulacionsWithCentre() { return os.findAllTitulacionsWithCentre(); } /* * Endopint for findByRuct */ @GetMapping("/getAllIndsByRuct/{ruct}/{curs}") public List getAllIndsByRuct(@PathVariable Integer ruct, @PathVariable Integer curs) { Organ o = os.findByRuct(ruct); return ies.getAllInds(o, curs); } @GetMapping("/getOrgByRuct/{ruct}") public OrganDTO getOrgByRuct(@PathVariable Integer ruct) { return os.findByRuctDTO(ruct); } /* * Endpoint para findById */ @GetMapping("/findById/{tlugar}/{idTitulacio}") public ResponseEntity findById(@PathVariable String tlugar, @PathVariable Integer idTitulacio) { try { Organ organ = os.findByID(tlugar, idTitulacio); OrganTransferDTO organTransferDTO = new OrganTransferDTO(organ); return ResponseEntity.ok(organTransferDTO); } catch(Exception e) { return ResponseEntity.badRequest().body("Error al obtener el organo" + " por tlugar y titulación: " + e.getMessage()); } } /* * Endpoint para getTitulacionsByTypeCentre */ @GetMapping("/getTitulacionsByTypeCentre/{lugar}/{ambit}") public ResponseEntity getTitulacionsByTypeCentre(@PathVariable Integer lugar, @PathVariable Integer ambit) { try { List organList = os.getTitulacionsByTypeCentre(lugar, ambit); List organDTOList = new ArrayList<>(); for(Organ org: organList) { organDTOList.add(new OrganTransferDTO(org)); } return ResponseEntity.ok(organDTOList); } catch(Exception e) { return ResponseEntity.badRequest().body("Error al obtener los organos" + " por lugar y ambit: " + e.getMessage()); } } @GetMapping("/existsOrg/{tlugar}/{idTitulacio}") public boolean existsOrg(@PathVariable String tlugar, @PathVariable Integer idTitulacio) { return os.exists(tlugar, idTitulacio); } @GetMapping("/getTitulacionsByCentreTambit/{centre}/{tambit}") public ResponseEntity getTitulacionsByCentreTambit(@PathVariable Integer lugar, @PathVariable String tambit) { try { List organList = os.findActiveTitulacionsByCentreTambit(lugar, tambit); List organDTOList = new ArrayList<>(); for(Organ org: organList) { organDTOList.add(new OrganTransferDTO(org)); } return ResponseEntity.ok(organDTOList); } catch(Exception e) { return ResponseEntity.badRequest().body("Error al obtener los organos" + " por lugar y ambit: " + e.getMessage()); } } }