radfusion/app/Http/Controllers/Staff/AttachmentController.php
2025-01-06 13:48:24 +06:00

44 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers\Staff;
use App\Http\Controllers\HashidControllerBase;
use App\Models\Enums\Permission;
use App\Models\Study;
use Illuminate\Http\Request;
class AttachmentController extends HashidControllerBase
{
public function upload(Request $request)
{
abort_unless(auth()->user()->may(Permission::AttachmentUpload), 403);
$this->decodeKeys();
$study = Study::findOrFail($this->key);
$request->validate([
'file.*' => 'required|mimes:pdf,jpg,png|max:2048',
]);
foreach ($request->file('file') as $file) {
$study->addMedia($file)->toMediaCollection('uploads');
}
return response()->json(['success' => 'Files uploaded successfully']);
}
public function delete($mediaId)
{
abort_unless(auth()->user()->may(Permission::AttachmentUpload), 403);
$this->decodeKeys();
$study = Study::findOrFail($this->key);
$media = $study->getMedia('uploads')->where('id', (int) $mediaId)->first();
if ($media) {
$media->delete();
return redirect()->back()->with('success', 'File deleted successfully');
}
return redirect()->back()->with('error', 'File not found');
}
}