From 53f97680a4e5be279a261768dca09da7b333dcd8 Mon Sep 17 00:00:00 2001 From: snipe Date: Tue, 20 May 2025 16:18:29 +0100 Subject: [PATCH] Removed asset files controller Signed-off-by: snipe --- .../Controllers/Api/AssetFilesController.php | 198 ------------------ 1 file changed, 198 deletions(-) delete mode 100644 app/Http/Controllers/Api/AssetFilesController.php diff --git a/app/Http/Controllers/Api/AssetFilesController.php b/app/Http/Controllers/Api/AssetFilesController.php deleted file mode 100644 index af4c99c947..0000000000 --- a/app/Http/Controllers/Api/AssetFilesController.php +++ /dev/null @@ -1,198 +0,0 @@ - - * - * @version v1.0 - * @author [T. Scarsbrook] [] - */ -class AssetFilesController extends Controller -{ - /** - * Accepts a POST to upload a file to the server. - * - * @param \App\Http\Requests\UploadFileRequest $request - * @param int $assetId - * @since [v6.0] - * @author [T. Scarsbrook] [] - */ - public function store(UploadFileRequest $request, Asset $asset) : JsonResponse - { - \Log::error('asset files controller touched'); - - - // Make sure we are allowed to update this asset - $this->authorize('update', $asset); - - if ($request->hasFile('file')) { - // If the file storage directory doesn't exist, create it - if (! Storage::exists('private_uploads/assets')) { - Storage::makeDirectory('private_uploads/assets', 775); - } - - // Loop over the attached files and add them to the asset - foreach ($request->file('file') as $file) { - $file_name = $request->handleFile('private_uploads/assets/','hardware-'.$asset->id, $file); - $files[] = $file_name; - $asset->logUpload($file_name, e($request->get('notes'))); - } - $files = Actionlog::select('action_logs.*')->where('action_type', '=', 'uploaded')->where('item_type', '=', Asset::class)->where('item_id', '=', $asset->id)->whereIn('filename', $files)->get(); - // All done - report success - return response()->json(Helper::formatStandardApiResponse('success', (new UploadedFilesTransformer())->transformFiles($files, count($files)), trans('admin/hardware/message.upload.success'))); - } - - // We only reach here if no files were included in the POST, so tell the user this - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.upload.nofiles')), 500); - } - - /** - * List the files for an asset. - * - * @param int $assetId - * @since [v6.0] - * @author [T. Scarsbrook] [] - */ - public function list(Asset $asset, Request $request) : JsonResponse | array - { - - $this->authorize('view', $asset); - - $allowed_columns = - [ - 'id', - 'filename', - 'eol', - 'notes', - 'created_at', - 'updated_at', - ]; - - $files = Actionlog::select('action_logs.*')->where('action_type', '=', 'uploaded')->where('item_type', '=', Asset::class)->where('item_id', '=', $asset->id); - - if ($request->filled('search')) { - $files = $files->TextSearch($request->input('search')); - } - - // Make sure the offset and limit are actually integers and do not exceed system limits - $offset = ($request->input('offset') > $files->count()) ? $files->count() : abs($request->input('offset')); - $limit = app('api_limit_value'); - $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; - $sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at'; - $files = $files->orderBy($sort, $order); - - $files = $files->skip($offset)->take($limit)->get(); - return (new UploadedFilesTransformer())->transformFiles($files, $files->count()); - - } - - /** - * Check for permissions and display the file. - * - * @param int $assetId - * @param int $fileId - * @return \Illuminate\Http\JsonResponse - * @throws \Illuminate\Auth\Access\AuthorizationException - * @since [v6.0] - * @author [T. Scarsbrook] [] - */ - public function show(Asset $asset, $fileId = null) : JsonResponse | StreamedResponse | Storage | StorageHelper | BinaryFileResponse - { - - // the asset is valid - if (isset($asset->id)) { - $this->authorize('view', $asset); - - // Check that the file being requested exists for the asset - if (! $log = Actionlog::whereNotNull('filename')->where('item_id', $asset->id)->find($fileId)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 404); - } - - // Form the full filename with path - $file = 'private_uploads/assets/'.$log->filename; - Log::debug('Checking for '.$file); - - if ($log->action_type == 'audit') { - $file = 'private_uploads/audits/'.$log->filename; - } - - // Check the file actually exists on the filesystem - if (! Storage::exists($file)) { - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.does_not_exist', ['id' => $fileId])), 404); - } - - if (request('inline') == 'true') { - - $headers = [ - 'Content-Disposition' => 'inline', - ]; - - return Storage::download($file, $log->filename, $headers); - } - - return StorageHelper::downloader($file); - } - - // Send back an error message - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error', ['id' => $fileId])), 500); - } - - /** - * Delete the associated file - * - * @param int $assetId - * @param int $fileId - * @since [v6.0] - * @author [T. Scarsbrook] [] - */ - public function destroy(Asset $asset, $fileId = null) : JsonResponse - { - - $rel_path = 'private_uploads/assets'; - - // the asset is valid - if (isset($asset->id)) { - $this->authorize('update', $asset); - - // Check for the file - $log = Actionlog::find($fileId); - - if ($log) { - // Check the file actually exists, and delete it - if (Storage::exists($rel_path.'/'.$log->filename)) { - Storage::delete($rel_path.'/'.$log->filename); - } - - // Delete the record of the file - $log->delete(); - - // All deleting done - notify the user of success - return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.deletefile.success')), 200); - } - - // The file doesn't seem to really exist, so report an error - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.error')), 500); - } - - return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.error')), 500); - } -}