Files
mtdb_movie/common/Csv/BaseCsvExportController.php
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

54 lines
1.2 KiB
PHP
Executable File

<?php
namespace Common\Csv;
use Auth;
use Carbon\Carbon;
use Common\Core\BaseController;
use Illuminate\Http\Request;
use Storage;
use Symfony\Component\HttpFoundation\StreamedResponse;
class BaseCsvExportController extends BaseController
{
public function __construct(protected Request $request)
{
$this->middleware('auth');
}
public function download(CsvExport $csvExport): StreamedResponse
{
if (
!Auth::user()->hasPermission('admin') &&
$csvExport->user_id !== Auth::id()
) {
abort(403);
}
return Storage::download(
$csvExport->filePath(),
$csvExport->download_name,
);
}
protected function exportUsing(BaseCsvExportJob $exportJob)
{
$csvExport = CsvExport::where(
'cache_name',
$exportJob->cacheName(),
)->first();
if (
$csvExport &&
$csvExport->created_at->greaterThan(Carbon::now()->addMinutes(-30))
) {
return $this->success([
'downloadPath' => $csvExport->downloadLink(),
]);
}
$this->dispatch($exportJob);
return $this->success(['result' => 'jobQueued']);
}
}