From 52fa577c4b9379ee1e9f226c8e43d6dcd358c59b Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Tue, 18 Jun 2024 11:53:45 +0800 Subject: [PATCH] Export pdf file from Laravel Vapor through S3 bucket --- .../DownloadMockUpWhiteFormPdfLogic.php | 12 +++++++++++- .../forms/SupplierPlaceOrderFormComponent.vue | 17 +++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php index 09dfddb8..b50228f4 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php @@ -8,6 +8,8 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Mccarlosen\LaravelMpdf\Facades\LaravelMpdf; use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\General\AWSS3Helper; +use Illuminate\Support\Facades\Storage; class DownloadMockUpWhiteFormPdfLogic { @@ -56,6 +58,14 @@ class DownloadMockUpWhiteFormPdfLogic DB::rollBack(); - return $pdf->stream('MockUpWhiteForm.pdf'); + $exportFileName = 'MockUpWhiteForm.pdf'; + $filesystemDriver = Storage::getDefaultDriver(); + if($filesystemDriver === 's3'){ + $pdfContent = $pdf->output(); + AWSS3Helper::S3PDF($exportFileName, $pdfContent); + } + else{ + return $pdf->stream($exportFileName); + } } } diff --git a/resources/assets/vue/components/bookings/forms/SupplierPlaceOrderFormComponent.vue b/resources/assets/vue/components/bookings/forms/SupplierPlaceOrderFormComponent.vue index 0f27eb95..de972bdc 100644 --- a/resources/assets/vue/components/bookings/forms/SupplierPlaceOrderFormComponent.vue +++ b/resources/assets/vue/components/bookings/forms/SupplierPlaceOrderFormComponent.vue @@ -150,9 +150,22 @@ return payment.id }); - window.open(this.route('whiteForm.mockUp', this.supplier.id)+'?rate='+this.parameters.rate+'&payments='+JSON.stringify(paymentIds), '_blank'); + let url = this.route('whiteForm.mockUp', this.supplier.id)+'?rate='+this.parameters.rate+'&payments='+JSON.stringify(paymentIds); + if(window.LARAVEL_VAPOR_ENABLED){ + return fetch(url, { + method: 'GET', + responseType: 'json', + }).then(response => { + if (response.src) { + window.location.href = response.src; + } + }); + } + else{ + window.open(url, '_blank'); + } } }, mixins: [FormHandler] } - \ No newline at end of file +