Browse Source

Arreglado descarga fichero y migrado a feing todo

Mario Martínez Hernández 4 weeks ago
parent
commit
d8cd039216

+ 2 - 1
src/main/java/es/uv/saic/feign/DocumentClient.java

@@ -20,6 +20,7 @@ import es.uv.saic.dto.CategoriaDTO;
 import es.uv.saic.dto.DocumentTmpDTO;
 import es.uv.saic.dto.PdfDTO;
 import fr.opensagres.xdocreport.core.XDocReportException;
+import jakarta.servlet.http.HttpServletResponse;
 
 @FeignClient(value = "document-service", url = "${saic.url.docs.domain}")
 public interface DocumentClient {
@@ -44,7 +45,7 @@ public interface DocumentClient {
 
     @GetMapping("/download/{fileName}")
     @ResponseBody
-	public byte[] download(@PathVariable("fileName") BigInteger idInstanciaTasca) throws FileNotFoundException;		
+	public ResponseEntity<byte[]> download(@PathVariable("fileName") BigInteger idInstanciaTasca) throws IOException;		
 
     @GetMapping(value="/download/document/{id}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
 	@ResponseBody

+ 17 - 2
src/main/java/es/uv/saic/web/DownloadController.java

@@ -3,11 +3,15 @@ package es.uv.saic.web;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.math.BigInteger;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.Optional;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -19,6 +23,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import es.uv.saic.dto.PdfDTO;
 import es.uv.saic.feign.DocumentClient;
 import fr.opensagres.xdocreport.core.XDocReportException;
+import jakarta.servlet.http.HttpServletResponse;
 
 @Controller
 public class DownloadController {
@@ -34,8 +39,18 @@ public class DownloadController {
 	 */
 	@GetMapping(value="/download/{fileName}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
 	@ResponseBody
-	public byte[] download(Model model, @PathVariable("fileName") BigInteger idInstanciaTasca) throws FileNotFoundException {	
-		return dc.download(idInstanciaTasca);
+	public FileSystemResource download(Model model, @PathVariable("fileName") BigInteger idInstanciaTasca) throws IOException {	
+		// Convert byte[] to FileSystemResource
+		ResponseEntity<byte[]> response = dc.download(idInstanciaTasca);
+		byte[] data = response.getBody();
+
+		String fileName = response.getHeaders().getFirst("Content-Disposition").split("filename=")[1].replace("\"", "");
+
+		Path tempFile = Files.createTempFile( "download-", "-" + fileName);
+		Files.write(tempFile, data);
+		tempFile.toFile().deleteOnExit();
+
+		return new FileSystemResource(tempFile.toFile());
 	}					
 
 	/*

+ 2 - 4
src/main/java/es/uv/saic/web/EmailController.java

@@ -18,13 +18,11 @@ public class EmailController {
     EmailService es;
 
     @PostMapping("/sendEmail")
-    public ResponseEntity<?> sendEmail(@RequestBody EmailDTO email) {
+    public void sendEmail(@RequestBody EmailDTO email) {
         try {
             es.sendMail(email.getTo(), email.getSubject(), email.getMessage());
-            
-            return ResponseEntity.ok("ok");
         } catch (MessagingException e) {
-            return ResponseEntity.badRequest().body(e.getMessage());
+            e.printStackTrace();
         }
 
     }

+ 6 - 20
src/main/java/es/uv/saic/web/IndicadorController.java

@@ -58,17 +58,8 @@ public class IndicadorController {
     }
 
     @DeleteMapping("/delete/by/{enquesta}")
-    public ResponseEntity<?> deleteByEnquestaC(@PathVariable String enquesta) {
-
-        Integer i = 0;
-        try {
-            i = iets.deleteByEnquesta(enquesta);
-
-        } catch(Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al tramitar la petición de borrar: " + e.getMessage());
-        }
-    return ResponseEntity.ok(i);
+    public Integer deleteByEnquestaC(@PathVariable String enquesta) {
+        return iets.deleteByEnquesta(enquesta);
     }
 
     /*
@@ -175,13 +166,8 @@ public class IndicadorController {
      * Endpoint para la funcion save de iets
      */
     @PostMapping("/save")
-    public ResponseEntity<?> save(@RequestBody IndicadorEnquestaTmp ie) {
-        try{
-            iets.save(ie);
-            return ResponseEntity.ok("Ok");
-        } catch (Exception e) {
-            return ResponseEntity.badRequest().body(e.getMessage());
-        }
+    public void save(@RequestBody IndicadorEnquestaTmp ie) {
+        iets.save(ie);
     }
 
     @GetMapping("/countByEnquesta/{enquesta}")
@@ -199,8 +185,8 @@ public class IndicadorController {
         return iets.checkDuplicates(enquesta);
     }
 
-    @GetMapping("/consolidateByEnquestaAux/{enquesta}")
-    public Integer consolidateByEnquestaAux(@PathVariable String enquesta) {
+    @GetMapping("/consolidateByEnquesta/{enquesta}")
+    public Integer consolidateByEnquesta(@PathVariable String enquesta) {
         return ies.consolidateByEnquesta(enquesta);
     }
     

+ 6 - 20
src/main/java/es/uv/saic/web/OrganController.java

@@ -1,6 +1,5 @@
 package es.uv.saic.web;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -8,7 +7,6 @@ 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.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import es.uv.saic.domain.IndicadorEnquesta;
@@ -51,16 +49,9 @@ public class OrganController {
         return ies.getAllInds(o, curs);
     }
 
-    @GetMapping("/getOrgsByRuct/{ruct}")
-    public ResponseEntity<?> getOrgsByRuct(@PathVariable Integer ruct) {
-        try {
-            Organ o = os.findByRuct(ruct); 
-
-            return ResponseEntity.ok(o);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al obtener el organo por ruct: " + e.getMessage());
-        }
+    @GetMapping("/getOrgByRuct/{ruct}")
+    public Organ getOrgByRuct(@PathVariable Integer ruct) {
+        return os.findByRuct(ruct);
     }
 
     /*
@@ -93,14 +84,9 @@ public class OrganController {
         }
     }
 
-    @GetMapping("/existOrg/{tlugar}/{idTitulacio}")
-    public ResponseEntity<?> existOrg(@PathVariable String tlugar,  @PathVariable Integer idTitulacio) {
-        try {
-            return ResponseEntity.ok(os.exists(tlugar, idTitulacio));
-        } catch(Exception e) {
-            return ResponseEntity.badRequest().body("Error al obtener el organo" +
-                " por tlugar y titulación: " + e.getMessage());
-        }
+    @GetMapping("/existsOrg/{tlugar}/{idTitulacio}")
+    public boolean existsOrg(@PathVariable String tlugar,  @PathVariable Integer idTitulacio) {
+        return os.exists(tlugar, idTitulacio);
     }
 
     @GetMapping("/getTitulacionsByCentreTambit/{centre}/{tambit}")