0
0
Fork 0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-05-21 07:26:59 +00:00

Extracted download response logic to its own class

Cleans up base controller and groups up download & streaming logic for
potential future easier addition of range request support.
This commit is contained in:
Dan Brown 2022-06-08 23:50:42 +01:00
parent e72ade727d
commit abc283fc64
No known key found for this signature in database
GPG key ID: 46D9F943C24A2EF9
11 changed files with 108 additions and 106 deletions
app/Http/Controllers

View file

@ -33,7 +33,7 @@ class ChapterExportController extends Controller
$chapter = $this->chapterRepo->getBySlug($bookSlug, $chapterSlug);
$pdfContent = $this->exportFormatter->chapterToPdf($chapter);
return $this->downloadResponse($pdfContent, $chapterSlug . '.pdf');
return $this->download()->directly($pdfContent, $chapterSlug . '.pdf');
}
/**
@ -47,7 +47,7 @@ class ChapterExportController extends Controller
$chapter = $this->chapterRepo->getBySlug($bookSlug, $chapterSlug);
$containedHtml = $this->exportFormatter->chapterToContainedHtml($chapter);
return $this->downloadResponse($containedHtml, $chapterSlug . '.html');
return $this->download()->directly($containedHtml, $chapterSlug . '.html');
}
/**
@ -60,7 +60,7 @@ class ChapterExportController extends Controller
$chapter = $this->chapterRepo->getBySlug($bookSlug, $chapterSlug);
$chapterText = $this->exportFormatter->chapterToPlainText($chapter);
return $this->downloadResponse($chapterText, $chapterSlug . '.txt');
return $this->download()->directly($chapterText, $chapterSlug . '.txt');
}
/**
@ -70,10 +70,9 @@ class ChapterExportController extends Controller
*/
public function markdown(string $bookSlug, string $chapterSlug)
{
// TODO: This should probably export to a zip file.
$chapter = $this->chapterRepo->getBySlug($bookSlug, $chapterSlug);
$chapterText = $this->exportFormatter->chapterToMarkdown($chapter);
return $this->downloadResponse($chapterText, $chapterSlug . '.md');
return $this->download()->directly($chapterText, $chapterSlug . '.md');
}
}