Initial commit

This commit is contained in:
2026-02-03 10:38:46 +01:00
commit eb304f4b14
144 changed files with 22605 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Upload;
use App\Services\GoogleDrive\GoogleDriveService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UploadsController extends Controller
{
public function show(Upload $upload, Request $request): JsonResponse
{
$this->authorizeUpload($upload, $request);
return response()->json($upload);
}
public function destroy(Upload $upload, Request $request, GoogleDriveService $googleDrive): JsonResponse
{
$this->authorizeUpload($upload, $request);
if ($upload->google_drive_file_id) {
try {
$googleDrive->deleteFile($request->user(), $upload->google_drive_file_id);
} catch (\Throwable) {
// Continue to delete record even if Drive delete fails
}
}
$upload->delete();
return response()->json(null, 204);
}
public function downloadUrl(Upload $upload, Request $request, GoogleDriveService $googleDrive): JsonResponse
{
$this->authorizeUpload($upload, $request);
if (! $upload->google_drive_file_id) {
return response()->json(['message' => 'File not yet available'], 404);
}
$url = $googleDrive->getFileLink($request->user(), $upload->google_drive_file_id);
return response()->json(['url' => $url]);
}
protected function authorizeUpload(Upload $upload, Request $request): void
{
if ($upload->event->user_id !== $request->user()->id) {
abort(404);
}
}
}