From 96cd04fac2d4c04bc2ef7c73bb12f99cae7d4aae Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 9 Jan 2019 20:38:37 +0800 Subject: [PATCH 1/4] [wip] Refactor log file viewer routes to controller Add Reports\LogFileController@index --- app/Http/Controllers/Reports/LogFileController.php | 24 ++++++++++++++++++++++ routes/web/reports.php | 15 +------------- 2 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 app/Http/Controllers/Reports/LogFileController.php diff --git a/app/Http/Controllers/Reports/LogFileController.php b/app/Http/Controllers/Reports/LogFileController.php new file mode 100644 index 0000000..f42ddb7 --- /dev/null +++ b/app/Http/Controllers/Reports/LogFileController.php @@ -0,0 +1,24 @@ +getMTime(), $b->getMTime()); + }); + + return view('reports.log-files', compact('logFiles')); + } +} diff --git a/routes/web/reports.php b/routes/web/reports.php index 2d4d867..33d4aea 100644 --- a/routes/web/reports.php +++ b/routes/web/reports.php @@ -10,20 +10,7 @@ Route::group(['middleware' => ['web', 'role:admin'], 'prefix' => 'reports'], fun Route::get('payments/yearly', ['as' => 'reports.payments.yearly', 'uses' => 'ReportsController@yearly']); Route::get('current-credits', ['as' => 'reports.current-credits', 'uses' => 'ReportsController@currentCredits']); - Route::get('log-files', ['as' => 'log-files.index', 'uses' => function () { - if (!file_exists(storage_path('logs'))) { - return []; - } - - $logFiles = \File::allFiles(storage_path('logs')); - - // Sort files by modified time DESC - usort($logFiles, function ($a, $b) { - return -1 * strcmp($a->getMTime(), $b->getMTime()); - }); - - return view('reports.log-files', compact('logFiles')); - }]); + Route::get('log-files', ['as' => 'log-files.index', 'uses' => 'Reports\LogFileController@index']); Route::get('log-files/{filename}', ['as' => 'log-files.show', 'uses' => function ($fileName) { if (file_exists(storage_path('logs/'.$fileName))) { From 307ff909381e94761baff7f5dd26e0fefe1ecaba Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 9 Jan 2019 20:56:27 +0800 Subject: [PATCH 2/4] Move log file show and download to controller --- app/Http/Controllers/Reports/LogFileController.php | 18 ++++++++++++++++++ routes/web/reports.php | 18 ++---------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/Reports/LogFileController.php b/app/Http/Controllers/Reports/LogFileController.php index f42ddb7..000e053 100644 --- a/app/Http/Controllers/Reports/LogFileController.php +++ b/app/Http/Controllers/Reports/LogFileController.php @@ -21,4 +21,22 @@ class LogFileController extends Controller return view('reports.log-files', compact('logFiles')); } + + public function show($fileName) + { + if (file_exists(storage_path('logs/'.$fileName))) { + return response()->file(storage_path('logs/'.$fileName), ['content-type' => 'text/plain']); + } + + return 'Invalid file name.'; + } + + public function download($fileName) + { + if (file_exists(storage_path('logs/'.$fileName))) { + return response()->download(storage_path('logs/'.$fileName), env('APP_ENV').'.'.$fileName); + } + + return 'Invalid file name.'; + } } diff --git a/routes/web/reports.php b/routes/web/reports.php index 33d4aea..e9d9526 100644 --- a/routes/web/reports.php +++ b/routes/web/reports.php @@ -11,20 +11,6 @@ Route::group(['middleware' => ['web', 'role:admin'], 'prefix' => 'reports'], fun Route::get('current-credits', ['as' => 'reports.current-credits', 'uses' => 'ReportsController@currentCredits']); Route::get('log-files', ['as' => 'log-files.index', 'uses' => 'Reports\LogFileController@index']); - - Route::get('log-files/{filename}', ['as' => 'log-files.show', 'uses' => function ($fileName) { - if (file_exists(storage_path('logs/'.$fileName))) { - return response()->file(storage_path('logs/'.$fileName), ['content-type' => 'text/plain']); - } - - return 'Invalid file name.'; - }]); - - Route::get('log-files/{filename}/download', ['as' => 'log-files.download', 'uses' => function ($fileName) { - if (file_exists(storage_path('logs/'.$fileName))) { - return response()->download(storage_path('logs/'.$fileName), env('APP_ENV').'.'.$fileName); - } - - return 'Invalid file name.'; - }]); + Route::get('log-files/{filename}', ['as' => 'log-files.show', 'uses' => 'Reports\LogFileController@show']); + Route::get('log-files/{filename}/download', ['as' => 'log-files.download', 'uses' => 'Reports\LogFileController@download']); }); From d677e463ce161bfcce63f35402039017ba2bc333 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 9 Jan 2019 20:58:49 +0800 Subject: [PATCH 3/4] Change log file routes definition using newer style --- routes/web/reports.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/routes/web/reports.php b/routes/web/reports.php index e9d9526..a3cc696 100644 --- a/routes/web/reports.php +++ b/routes/web/reports.php @@ -10,7 +10,7 @@ Route::group(['middleware' => ['web', 'role:admin'], 'prefix' => 'reports'], fun Route::get('payments/yearly', ['as' => 'reports.payments.yearly', 'uses' => 'ReportsController@yearly']); Route::get('current-credits', ['as' => 'reports.current-credits', 'uses' => 'ReportsController@currentCredits']); - Route::get('log-files', ['as' => 'log-files.index', 'uses' => 'Reports\LogFileController@index']); - Route::get('log-files/{filename}', ['as' => 'log-files.show', 'uses' => 'Reports\LogFileController@show']); - Route::get('log-files/{filename}/download', ['as' => 'log-files.download', 'uses' => 'Reports\LogFileController@download']); + Route::get('log-files', 'Reports\LogFileController@index')->name('log-files.index'); + Route::get('log-files/{fileName}', 'Reports\LogFileController@show')->name('log-files.show'); + Route::get('log-files/{fileName}/download', 'Reports\LogFileController@download')->name('log-files.download'); }); From 513b84835b1962a052b3c021526f84bd378d5372 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 9 Jan 2019 21:00:06 +0800 Subject: [PATCH 4/4] Change report routes to newer route style --- routes/web/reports.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/routes/web/reports.php b/routes/web/reports.php index a3cc696..5748042 100644 --- a/routes/web/reports.php +++ b/routes/web/reports.php @@ -4,12 +4,15 @@ Route::group(['middleware' => ['web', 'role:admin'], 'prefix' => 'reports'], fun /* * Reports Routes */ - Route::get('payments', ['as' => 'reports.payments.index', 'uses' => 'ReportsController@monthly']); - Route::get('payments/daily', ['as' => 'reports.payments.daily', 'uses' => 'ReportsController@daily']); - Route::get('payments/monthly', ['as' => 'reports.payments.monthly', 'uses' => 'ReportsController@monthly']); - Route::get('payments/yearly', ['as' => 'reports.payments.yearly', 'uses' => 'ReportsController@yearly']); - Route::get('current-credits', ['as' => 'reports.current-credits', 'uses' => 'ReportsController@currentCredits']); + Route::get('payments', 'ReportsController@monthly')->name('reports.payments.index'); + Route::get('payments/daily', 'ReportsController@daily')->name('reports.payments.daily'); + Route::get('payments/monthly', 'ReportsController@monthly')->name('reports.payments.monthly'); + Route::get('payments/yearly', 'ReportsController@yearly')->name('reports.payments.yearly'); + Route::get('current-credits', 'ReportsController@currentCredits')->name('reports.current-credits'); + /* + * Log Files Routes + */ Route::get('log-files', 'Reports\LogFileController@index')->name('log-files.index'); Route::get('log-files/{fileName}', 'Reports\LogFileController@show')->name('log-files.show'); Route::get('log-files/{fileName}/download', 'Reports\LogFileController@download')->name('log-files.download');