28 lines
871 B
PHP
28 lines
871 B
PHP
<?php
|
|
|
|
namespace Modules\Builder\Http\Controllers;
|
|
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\Builder\Models\BuilderDocument;
|
|
use Modules\Builder\Services\BuilderRegistry;
|
|
use Modules\Builder\Services\BuilderRenderer;
|
|
|
|
final class BuilderApiController extends Controller
|
|
{
|
|
public function components(BuilderRegistry $registry): JsonResponse
|
|
{
|
|
return response()->json(['data' => $registry->components(), 'widgets' => $registry->widgets(), 'fields' => $registry->fields()]);
|
|
}
|
|
|
|
public function show(BuilderDocument $document): JsonResponse
|
|
{
|
|
return response()->json(['data' => $document]);
|
|
}
|
|
|
|
public function preview(BuilderDocument $document, BuilderRenderer $renderer): JsonResponse
|
|
{
|
|
return response()->json(['html' => $renderer->render($document->document ?? [])]);
|
|
}
|
|
}
|