radfusion/app/Http/Controllers/Staff/AttachmentController.php
2025-01-06 14:22:53 +06:00

45 lines
1.3 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(Study::MEDIA_COLLECTION);
}
return response()->json(['success' => 'Files uploaded successfully']);
}
public function delete(string $hashId, int $mediaId)
{
abort_unless(auth()->user()->may(Permission::AttachmentUpload), 403);
$this->decodeKeys();
$study = Study::findOrFail($this->key);
$media = $study->getMedia(Study::MEDIA_COLLECTION)->where('id', $mediaId)->first();
if ($media !== null) {
$media->delete();
return redirect()->back()->with('success', 'File deleted successfully');
}
return redirect()->back()->with('error', 'File not found');
}
}