From b590f29f33fe7b2d298a7a7a457cc25cd4d23b2e Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 28 Jun 2022 23:59:13 -0700 Subject: [PATCH] Attempt a download via API Signed-off-by: snipe --- .../Controllers/Api/SettingsController.php | 17 ++++-- app/Http/Transformers/BackupsTransformer.php | 55 ------------------- 2 files changed, 13 insertions(+), 59 deletions(-) delete mode 100644 app/Http/Transformers/BackupsTransformer.php diff --git a/app/Http/Controllers/Api/SettingsController.php b/app/Http/Controllers/Api/SettingsController.php index d6ac8b8265..62380b2212 100644 --- a/app/Http/Controllers/Api/SettingsController.php +++ b/app/Http/Controllers/Api/SettingsController.php @@ -2,7 +2,9 @@ namespace App\Http\Controllers\Api; -use App\Http\Transformers\BackupsTransformer; +use App\Helpers\Helper; +use App\Helpers\StorageHelper; +use App\Http\Transformers\DatatablesTransformer; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\Ldap; @@ -298,13 +300,20 @@ class SettingsController extends Controller } $files = array_reverse($files_raw); - return (new BackupsTransformer())->transformBackups($files, $count); + return (new DatatablesTransformer)->transformDatatables($files, $count); } public function downloadBackup($file) { - $path = ''; - return response()->download($path, $file->name, $headers); + + $path = 'app/backups'; + if (Storage::exists($path.'/'.$file)) { + $headers = ['ContentType' => 'application/zip']; + return Storage::download($path.'/'.$file, $file, $headers); + } else { + return response()->json(Helper::formatStandardApiResponse('error', null, 'File not found')); + } + } } \ No newline at end of file diff --git a/app/Http/Transformers/BackupsTransformer.php b/app/Http/Transformers/BackupsTransformer.php deleted file mode 100644 index 707172489b..0000000000 --- a/app/Http/Transformers/BackupsTransformer.php +++ /dev/null @@ -1,55 +0,0 @@ -transformDatatables($array, $total); - } - - public function transformCategory(Array $file = null) - { - if ($file) { - $array = [ - 'id' => (int) $file->id, - 'name' => e($category->name), - 'image' => ($category->image) ? Storage::disk('public')->url('categories/'.e($category->image)) : null, - 'category_type' => ucwords(e($category->category_type)), - 'has_eula' => ($category->getEula() ? true : false), - 'use_default_eula' => ($category->use_default_eula=='1' ? true : false), - 'eula' => ($category->getEula()), - 'checkin_email' => ($category->checkin_email == '1'), - 'require_acceptance' => ($category->require_acceptance == '1'), - 'item_count' => (int) $category->itemCount(), - 'assets_count' => (int) $category->assets_count, - 'accessories_count' => (int) $category->accessories_count, - 'consumables_count' => (int) $category->consumables_count, - 'components_count' => (int) $category->components_count, - 'licenses_count' => (int) $category->licenses_count, - 'created_at' => Helper::getFormattedDateObject($category->created_at, 'datetime'), - 'updated_at' => Helper::getFormattedDateObject($category->updated_at, 'datetime'), - ]; - - $permissions_array['available_actions'] = [ - 'update' => Gate::allows('update', Category::class), - 'delete' => $category->isDeletable(), - ]; - - $array += $permissions_array; - - return $array; - } - } -}