37 lines
1.2 KiB
PHP
37 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Admin\Controllers;
|
|
|
|
use App\Domains\Admin\Actions\UpdateDocumentTemplate\UpdateDocumentTemplateAction;
|
|
use App\Domains\Admin\Actions\UpdateDocumentTemplate\UpdateDocumentTemplateRequest;
|
|
use App\Models\DocumentTypeCatalog;
|
|
use App\Scopes\CommonController;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class DocumentTemplatesUpdateController extends CommonController
|
|
{
|
|
public function __invoke(Request $request): JsonResponse
|
|
{
|
|
$documentType = (string) $request->input('type', DocumentTypeCatalog::default());
|
|
|
|
// Die Dokumentart bestimmt, welche Zeilen geschrieben werden -- ungeprüft weitergereicht wäre
|
|
// sie ein Weg, in beliebige Vorlagen zu schreiben.
|
|
if (!DocumentTypeCatalog::has($documentType)) {
|
|
abort(422, 'Unbekannte Dokumentart.');
|
|
}
|
|
|
|
$action = new UpdateDocumentTemplateAction(new UpdateDocumentTemplateRequest(
|
|
documentType: $documentType,
|
|
blocks: (array) $request->input('blocks', []),
|
|
));
|
|
|
|
$response = $action->execute();
|
|
|
|
return response()->json([
|
|
'status' => $response->success ? 'success' : 'error',
|
|
'message' => $response->message,
|
|
]);
|
|
}
|
|
}
|