Files
mareike/app/Domains/Admin/Controllers/DocumentTemplatesPreviewController.php
T

31 lines
1.0 KiB
PHP

<?php
namespace App\Domains\Admin\Controllers;
use App\Domains\ParticipantInvoice\ParticipantInvoiceTokens;
use App\Models\DocumentTemplate;
use App\Providers\DocumentTemplateRenderProvider;
use App\Providers\PdfGenerateAndDownloadProvider;
use App\Scopes\CommonController;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
/**
* Rendert die Vorlage mit Beispieldaten, ohne sie zu speichern -- damit niemand blind HTML editiert.
*/
class DocumentTemplatesPreviewController extends CommonController
{
public function __invoke(Request $request): Response
{
$html = new DocumentTemplateRenderProvider(
DocumentTemplate::TYPE_PARTICIPANT_INVOICE,
(array) $request->input('blocks', []),
)->render(ParticipantInvoiceTokens::sample());
return response(PdfGenerateAndDownloadProvider::fromHtml($html, 'portrait'), 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="vorschau.pdf"',
]);
}
}