X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/58fa7679bccafd00f9a50bcd4a87e96876331b03..755dc99c724d63ed7feb9ccc1ff607c2579a9f75:/app/Http/Controllers/Api/BookExportApiController.php diff --git a/app/Http/Controllers/Api/BookExportApiController.php b/app/Http/Controllers/Api/BookExportApiController.php index 24cba9df3..028bc3a81 100644 --- a/app/Http/Controllers/Api/BookExportApiController.php +++ b/app/Http/Controllers/Api/BookExportApiController.php @@ -1,4 +1,6 @@ -exportFormatter = $exportFormatter; + $this->middleware('can:content-export'); } /** * Export a book as a PDF file. + * * @throws Throwable */ public function exportPdf(int $id) { $book = Book::visible()->findOrFail($id); $pdfContent = $this->exportFormatter->bookToPdf($book); + return $this->downloadResponse($pdfContent, $book->slug . '.pdf'); } /** * Export a book as a contained HTML file. + * * @throws Throwable */ public function exportHtml(int $id) { $book = Book::visible()->findOrFail($id); $htmlContent = $this->exportFormatter->bookToContainedHtml($book); + return $this->downloadResponse($htmlContent, $book->slug . '.html'); } @@ -42,6 +49,7 @@ class BookExportApiController extends ApiController { $book = Book::visible()->findOrFail($id); $textContent = $this->exportFormatter->bookToPlainText($book); + return $this->downloadResponse($textContent, $book->slug . '.txt'); } @@ -52,6 +60,7 @@ class BookExportApiController extends ApiController { $book = Book::visible()->findOrFail($id); $markdown = $this->exportFormatter->bookToMarkdown($book); + return $this->downloadResponse($markdown, $book->slug . '.md'); } }