package es.uv.saic.feign; import java.io.IOException; import java.math.BigInteger; import java.sql.Timestamp; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import es.uv.saic.domain.EvidenciaIndicadorEnquesta; import es.uv.saic.domain.InstanciaTascaVer; import es.uv.saic.domain.Proces; import es.uv.saic.domain.Tipus; import es.uv.saic.dto.ProcesDTO; @FeignClient(value = "procedures-controller", url = "${saic.url.domain}") public interface ProceduresClient { @PostMapping("/procedures") public HashMap getActiveInstances(@RequestParam(required = false) String _new, @RequestParam String usuari); @GetMapping("/procedure/{id}") public HashMap getInstance(@RequestParam String location, @PathVariable BigInteger id, @RequestParam String usuari); @PostMapping("/procedure/files/{id}") @ResponseBody public HashMap updateInstanciaTascaEvidencia(@PathVariable BigInteger id, @RequestParam Map params, @RequestParam(required = true) List evidencias, @RequestParam String usuari) throws IllegalStateException, IOException; @PostMapping("/procedure/{id}") public HashMap updateInstanciaTasca(@PathVariable BigInteger id, @RequestParam Map params, @RequestParam(required = false) List evidencias, @RequestParam String usuari) throws IllegalStateException, IOException, InterruptedException; @PostMapping("/procedure/save/{id}") @ResponseBody public HashMap saveDraft(@RequestParam String location, @PathVariable BigInteger id, @RequestParam String text, @RequestParam boolean manual, @RequestParam String usuari); @GetMapping("/procedure/drafts/{id}") public HashMap getDrafts(@PathVariable BigInteger id); @GetMapping("/procedure/draft/{id}") @ResponseBody public InstanciaTascaVer getDraft(@PathVariable BigInteger id, @RequestParam Timestamp dataMod); @PostMapping("/procedure/draft/{id}") @ResponseBody public String restoreDraft(@PathVariable BigInteger id, @RequestParam Timestamp dataMod); @GetMapping("/proces/getAll") List getAll(); @GetMapping("/tipus/findAll") public List findAll(); @PostMapping("/ajax/search/years") public HashMap getYearsByCenterTitulation( @RequestParam(name="centers[]", required=false) List centres, @RequestParam("titulations[]") List titulacions, @RequestParam String usuari) throws IOException; @PostMapping("/ajax/search/procedures") public HashMap getProceduresByCenterTitulationYear( @RequestParam(name="centers[]", required=false) List centres, @RequestParam("years[]") List cursos, @RequestParam("titulations[]") List titulacions, @RequestParam String usuari) throws IOException; @PostMapping("/ajax/find/procedure") public HashMap findProcedure(@RequestParam("procedure") String idProces, @RequestParam("action") String action) throws IOException; @PostMapping("/ajax/template/form") public HashMap formTemplate(@RequestParam("id") Integer idPlantilla, @RequestParam("action") String action) throws IOException; @GetMapping("/find/proces/{idProces}") public Proces findProcesByID(@PathVariable Integer idProces); @GetMapping("/getByProcesEvidencia") public List getByProcesEvidencia(@RequestParam String nomProces, @RequestParam String evidencia); }