diff --git a/api/src/main/java/com/databasir/api/DocumentController.java b/api/src/main/java/com/databasir/api/DocumentController.java index 7a1b409..52f78e2 100644 --- a/api/src/main/java/com/databasir/api/DocumentController.java +++ b/api/src/main/java/com/databasir/api/DocumentController.java @@ -1,11 +1,11 @@ package com.databasir.api; import com.databasir.common.JsonData; -import com.databasir.common.SystemException; import com.databasir.core.domain.document.data.DatabaseDocumentResponse; import com.databasir.core.domain.document.data.DatabaseDocumentSimpleResponse; import com.databasir.core.domain.document.data.DatabaseDocumentVersionResponse; import com.databasir.core.domain.document.data.TableDocumentResponse; +import com.databasir.core.domain.document.generator.DocumentFileType; import com.databasir.core.domain.document.service.DocumentService; import com.databasir.core.domain.log.annotation.Operation; import lombok.RequiredArgsConstructor; @@ -20,13 +20,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody; -import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.List; -import java.util.UUID; import static org.springframework.data.domain.Sort.Direction.DESC; @@ -62,24 +57,18 @@ public class DocumentController { @GetMapping(Routes.Document.EXPORT) public ResponseEntity getDocumentFiles(@PathVariable Integer projectId, - @RequestParam(required = false) Long version) { - String data = documentService.toMarkdown(projectId, version).get(); - try { - Path path = Files.writeString(Paths.get(UUID.randomUUID().toString() + ".md"), data, - StandardCharsets.UTF_8); - HttpHeaders headers = new HttpHeaders(); - headers.setContentDisposition(ContentDisposition.attachment() - .filename("demo.md", StandardCharsets.UTF_8) - .build()); - byte[] bytes = Files.readAllBytes(path); - Files.deleteIfExists(path); - headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); - return ResponseEntity.ok() - .headers(headers) - .body(out -> out.write(bytes)); - } catch (IOException e) { - throw new SystemException("System error"); - } + @RequestParam(required = false) + Long version, + @RequestParam DocumentFileType fileType) { + HttpHeaders headers = new HttpHeaders(); + String fileName = "project[" + projectId + "]." + fileType.getFileExtension(); + headers.setContentDisposition(ContentDisposition.attachment() + .filename("demo.md", StandardCharsets.UTF_8) + .build()); + headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); + return ResponseEntity.ok() + .headers(headers) + .body(out -> documentService.export(projectId, version, fileType, out)); } @GetMapping(Routes.Document.GET_SIMPLE_ONE) diff --git a/api/src/main/resources/static/css/999.1437368b.css b/api/src/main/resources/static/css/907.1437368b.css similarity index 100% rename from api/src/main/resources/static/css/999.1437368b.css rename to api/src/main/resources/static/css/907.1437368b.css diff --git a/api/src/main/resources/static/index.html b/api/src/main/resources/static/index.html index 7c0b4f0..5b02826 100644 --- a/api/src/main/resources/static/index.html +++ b/api/src/main/resources/static/index.html @@ -1 +1 @@ -databasir-frontend
\ No newline at end of file +databasir-frontend
\ No newline at end of file diff --git a/api/src/main/resources/static/js/117-legacy.f00c6326.js b/api/src/main/resources/static/js/117-legacy.72d604e3.js similarity index 99% rename from api/src/main/resources/static/js/117-legacy.f00c6326.js rename to api/src/main/resources/static/js/117-legacy.72d604e3.js index e081baf..c9c6c23 100644 --- a/api/src/main/resources/static/js/117-legacy.f00c6326.js +++ b/api/src/main/resources/static/js/117-legacy.72d604e3.js @@ -1,2 +1,2 @@ (self["webpackChunkdatabasir_frontend"]=self["webpackChunkdatabasir_frontend"]||[]).push([[117],{1589:function(e,t,r){var n=r(7854),a=r(1400),o=r(6244),u=r(6135),l=n.Array,i=Math.max;e.exports=function(e,t,r){for(var n=o(e),c=a(t,n),s=a(void 0===r?n:r,n),d=l(i(s-c,0)),f=0;c