package es.uv.saic.web; import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import es.uv.saic.dto.CategoriaDTO; import es.uv.saic.dto.DocumentTmpDTO; import es.uv.saic.domain.Document; import es.uv.saic.service.DocumentService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; @RestController public class DocumentController { @Autowired private DocumentService ds; /* * endpoint para save */ @PostMapping("/document/save") public ResponseEntity save(@RequestBody Document doc) { try { Document auxDocument = ds.save(doc); return (auxDocument != null) ? ResponseEntity.ok(auxDocument) : ResponseEntity.badRequest().body("El documento no se ha podido guardar correctamente.") ; } catch (Exception e) { e.printStackTrace(); return ResponseEntity.badRequest().body("Hubo un error al procesar el documento: " + e.getMessage()); } } /* * endpoing para findByCategoriaOrgan */ @PostMapping("/findByCategoriaOrgan") public ResponseEntity findByCategoriaOrgan(@RequestBody CategoriaDTO categoria) { try { Document document = ds.findByCategoriaOrgan(categoria.getCategoria(), categoria.getLugar(), categoria.getTlugar()); return (document != null) ? ResponseEntity.ok(document) : ResponseEntity.badRequest().body("El documento no se ha podido encontrar.") ; } catch (Exception e) { e.printStackTrace(); return ResponseEntity.badRequest().body("Hubo un error al procesar el documento: " + e.getMessage()); } } /* * endpoint para findByID */ @GetMapping("/document/{idDocument}") public ResponseEntity findByID(@PathVariable Integer idDocument) { try { Document document = ds.findById(idDocument); return (document != null) ? ResponseEntity.ok(document) : ResponseEntity.badRequest().body("El documento no se ha podido encontrar.") ; } catch (Exception e) { e.printStackTrace(); return ResponseEntity.badRequest().body("No se encontro el documento: " + e.getMessage()); } } /* * endpoint para upload */ @PostMapping("/document/upload") public ResponseEntity upload(@RequestBody DocumentTmpDTO documentTmpDTO) { try{ return ResponseEntity.ok(ds.upload(documentTmpDTO.getIdDocument(), documentTmpDTO.getIdCategoria(), documentTmpDTO.getLugar(), documentTmpDTO.getTlugar(), documentTmpDTO.getFile())); } catch(IllegalStateException e) { e.printStackTrace(); return ResponseEntity.badRequest().body("Error: " + e.getMessage()); } catch(IOException e) { e.printStackTrace(); return ResponseEntity.badRequest().body("Error: " + e.getMessage()); } } @PostMapping("/document/archive") public ResponseEntity archive(@RequestBody Document doc) { try { Document auxDocument = ds.archive(doc); return (auxDocument != null) ? ResponseEntity.ok(auxDocument) : ResponseEntity.badRequest().body("El documento no se ha podido archivar correctamente.") ; } catch (Exception e) { e.printStackTrace(); return ResponseEntity.badRequest().body("Hubo un error al procesar el documento: " + e.getMessage()); } } }