diff --git a/config/log-viewer.php b/config/log-viewer.php index a02a68b2..41e71bc1 100644 --- a/config/log-viewer.php +++ b/config/log-viewer.php @@ -12,6 +12,8 @@ 'enabled' => env('LOG_VIEWER_ENABLED', true), + 'api_only' => env('LOG_VIEWER_API_ONLY', false), + 'require_auth_in_production' => true, /* diff --git a/src/LogViewerServiceProvider.php b/src/LogViewerServiceProvider.php index 803e16b2..8598655e 100644 --- a/src/LogViewerServiceProvider.php +++ b/src/LogViewerServiceProvider.php @@ -95,6 +95,10 @@ protected function registerRoutes() $this->loadRoutesFrom(self::basePath('/routes/api.php')); }); + if (config('log-viewer.api_only', false)) { + return; + } + Route::group([ 'domain' => config('log-viewer.route_domain', null), 'prefix' => config('log-viewer.route_path'), diff --git a/tests/Feature/RoutesTest.php b/tests/Feature/RoutesTest.php index ba47abfa..2b0507d2 100644 --- a/tests/Feature/RoutesTest.php +++ b/tests/Feature/RoutesTest.php @@ -1,5 +1,7 @@ set('log-viewer.route_path', 'new-log-route'); @@ -25,6 +27,22 @@ expect(route('log-viewer.index'))->toBe('http://localhost'); }); +test('only use api', function () { + config()->set('log-viewer.api_only', true); + + reloadRoutes(); + + route('log-viewer.index'); +})->throws(RouteNotFoundException::class); + +test('only both api and web', function () { + config()->set('log-viewer.api_only', false); + + reloadRoutes(); + + expect(route('log-viewer.index'))->toBe('http://localhost'); +}); + /* |-------------------------------------------------------------------------- | HELPERS diff --git a/tests/Pest.php b/tests/Pest.php index c21ea6fc..67e52441 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -11,6 +11,7 @@ uses(TestCase::class)->in(__DIR__); uses()->afterEach(fn () => clearGeneratedLogFiles())->in('Feature', 'Unit'); uses()->beforeEach(fn () => Artisan::call('log-viewer:publish'))->in('Feature'); +uses()->beforeEach(fn () => Artisan::call('config:cache'))->in('Feature'); uses()->beforeEach(function () { // let's not include any of the default mac logs or similar config(['log-viewer.include_files' => ['*.log', '**/*.log']]);