45 lines
1.3 KiB
PHP
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');
|
|
}
|
|
}
|