34 lines
947 B
PHP
34 lines
947 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers\Admin\Themes;
|
||
|
|
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use App\Http\Requests\Admin\Themes\ThemeFileTreeRequest;
|
||
|
|
use App\Services\ThemeEditorService;
|
||
|
|
use Exception;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Controller for retrieving the file tree of a theme.
|
||
|
|
*/
|
||
|
|
class ThemeEditorFileTreeController extends Controller
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Handle the file tree request.
|
||
|
|
*
|
||
|
|
* @param \App\Http\Requests\Admin\Themes\ThemeFileTreeRequest $request
|
||
|
|
* @param \App\Services\ThemeEditorService $editorService
|
||
|
|
* @return \Illuminate\Http\JsonResponse
|
||
|
|
*/
|
||
|
|
public function __invoke(ThemeFileTreeRequest $request, ThemeEditorService $editorService)
|
||
|
|
{
|
||
|
|
$theme = $request->query('theme');
|
||
|
|
|
||
|
|
try {
|
||
|
|
$tree = $editorService->getFileTree($theme);
|
||
|
|
return response()->json($tree);
|
||
|
|
} catch (Exception $e) {
|
||
|
|
return response()->json(['error' => $e->getMessage()], 404);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|