From dcd93d66e2aa2fe54286dcdfdbc9ae852b9a69ce Mon Sep 17 00:00:00 2001 From: "@jamaludinarifrohman6661" Date: Thu, 20 Feb 2025 10:36:56 +0700 Subject: [PATCH] fix: change path download template and add template pariwisata --- .../Controllers/Api/AdvertisementController.php | 2 +- app/Http/Controllers/Api/TourismController.php | 14 ++++++++++++++ app/Http/Controllers/Api/UmkmController.php | 2 +- public/templates/template_pariwisata.xlsx | Bin 0 -> 9999 bytes resources/js/data/tourisms/form-upload.js | 5 +++-- routes/api.php | 1 + 6 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 public/templates/template_pariwisata.xlsx diff --git a/app/Http/Controllers/Api/AdvertisementController.php b/app/Http/Controllers/Api/AdvertisementController.php index 85f5557..df8ff48 100644 --- a/app/Http/Controllers/Api/AdvertisementController.php +++ b/app/Http/Controllers/Api/AdvertisementController.php @@ -199,7 +199,7 @@ class AdvertisementController extends Controller public function downloadExcelAdvertisement() { - $filePath = storage_path('app/public/templates/template_reklame.xlsx'); + $filePath = public_path('templates/template_reklame.xlsx'); // Cek apakah file ada if (!file_exists($filePath)) { diff --git a/app/Http/Controllers/Api/TourismController.php b/app/Http/Controllers/Api/TourismController.php index c39a18f..704e4e9 100644 --- a/app/Http/Controllers/Api/TourismController.php +++ b/app/Http/Controllers/Api/TourismController.php @@ -127,4 +127,18 @@ class TourismController extends Controller return response()->noContent(); } + + public function downloadExcelTourism() + { + $filePath = public_path('templates/template_pariwisata.xlsx'); + info(sprintf("File Path: %s | Exists: %s", $filePath, file_exists($filePath) ? 'Yes' : 'No')); + + // Cek apakah file ada + if (!file_exists($filePath)) { + return response()-> json(['message' => 'File tidak ditemukan!'], Response::HTTP_NOT_FOUND); + } + + // Return file to download + return response()->download($filePath); + } } diff --git a/app/Http/Controllers/Api/UmkmController.php b/app/Http/Controllers/Api/UmkmController.php index 4ecf63e..3be6947 100644 --- a/app/Http/Controllers/Api/UmkmController.php +++ b/app/Http/Controllers/Api/UmkmController.php @@ -176,7 +176,7 @@ class UmkmController extends Controller public function downloadExcelUmkm() { - $filePath = storage_path('app/public/templates/template_umkm.xlsx'); + $filePath = public_path('templates/template_umkm.xlsx'); // Cek apakah file ada if (!file_exists($filePath)) { diff --git a/public/templates/template_pariwisata.xlsx b/public/templates/template_pariwisata.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..13de7648b65b07d6b0e21a0080baf4358631774a GIT binary patch literal 9999 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 HKd=4=+3sG% literal 0 HcmV?d00001 diff --git a/resources/js/data/tourisms/form-upload.js b/resources/js/data/tourisms/form-upload.js index 4bb1383..4b6972d 100644 --- a/resources/js/data/tourisms/form-upload.js +++ b/resources/js/data/tourisms/form-upload.js @@ -88,7 +88,7 @@ dropzone.on("complete", function(file) { // Add event listener to download file template document.getElementById('downloadtemptourisms').addEventListener('click', function() { - var url = `${GlobalConfig.apiHost}/api/download-template-umkm`; + var url = `${GlobalConfig.apiHost}/api/download-template-tourism`; fetch(url, { method: 'GET', headers: { @@ -105,11 +105,12 @@ document.getElementById('downloadtemptourisms').addEventListener('click', functi } }) .then((blob) => { + console.log(blob); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; - a.download = 'template_tourisms.xlsx'; + a.download = 'template_pariwisata.xlsx'; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); diff --git a/routes/api.php b/routes/api.php index 5af44ee..a986126 100644 --- a/routes/api.php +++ b/routes/api.php @@ -65,6 +65,7 @@ Route::group(['middleware' => 'auth:sanctum'], function (){ //tourism Route::apiResource('tourisms', TourismController::class); Route::post('/tourisms/import', [TourismController::class, 'importFromFile']); + Route::get('/download-template-tourism', [TourismController::class, 'downloadExcelTourism']); // data-settings