diff --git a/app/Http/Controllers/GiteaApiController.php b/app/Http/Controllers/GiteaApiController.php index 3d91186..716f35a 100644 --- a/app/Http/Controllers/GiteaApiController.php +++ b/app/Http/Controllers/GiteaApiController.php @@ -77,7 +77,6 @@ class GiteaApiController extends Controller header('Content-Type: text/csv'); // tell the browser we want to save it instead of displaying it header('Content-Disposition: attachment; filename="' . $file_name . '.csv";'); - exit(); } private function date_to_datetime(string $date) @@ -103,13 +102,12 @@ class GiteaApiController extends Controller } } - if (count($data) > 0 && $data[0]['Chiuso_il'] != '') { - $file_name = date('Y_F', strtotime(explode(' ', $data[0]['Chiuso_il'])[0])); + if (count($data) > 0) { + $file_name = $issues_params['state']."_issues_from_".$from_date."_to_".$to_date; $this->create_csv($file_name, $data); return true; - } else { - return false; } + return false; } public function export_closed_issues(Request $req) @@ -119,9 +117,10 @@ class GiteaApiController extends Controller } $from = $req->input('from_year') . '-' . $req->input('from_month') . '-01'; $to = $req->input('to_year') . '-' . $req->input('to_month') . '-31'; - $this->export_issues($from, $to, ['state' => 'closed']); + $res = $this->export_issues($from, $to, ['state' => $req->input('issues_type')]); return view('backend', [ - 'token' => getenv('GITEA_TOKEN') + 'token' => getenv('GITEA_TOKEN'), + 'download' => $res ]); } } diff --git a/resources/views/backend.blade.php b/resources/views/backend.blade.php index 41f0337..97ff608 100644 --- a/resources/views/backend.blade.php +++ b/resources/views/backend.blade.php @@ -12,6 +12,14 @@
+
+ + +

{{__('From:')}}

diff --git a/tests/PagesTest.php b/tests/PagesTest.php index e690593..6911783 100644 --- a/tests/PagesTest.php +++ b/tests/PagesTest.php @@ -44,4 +44,15 @@ class PagesTest extends TestCase __('File exporter'), $this->response->getContent() ); } + + public function test_export_endpoint_is_not_reachable_for_guests_and_redirect_to_login() + { + $home = $this->get('/'); + $res = $this->get('/export'); + + $res->assertResponseStatus(302); + $res->assertEquals( + $home->response->getContent(), $this->response->getContent() + ); + } } diff --git a/tests/UnitTest.php b/tests/UnitTest.php new file mode 100644 index 0000000..08a7fbb --- /dev/null +++ b/tests/UnitTest.php @@ -0,0 +1,23 @@ +post('/export', array( + 'token' => getenv('GITEA_TOKEN'), + 'from_month' => '10', + 'from_year' => '2023', + 'to_month' => '12', + 'to_year' => '2023' + )); + + $res->assertResponseOk(); + //dd($res); + } +}