authorize('viewAny', StorageProvider::class); return Inertia::render('storage-providers/index', [ 'storageProviders' => StorageProviderResource::collection(StorageProvider::getByProjectId(user()->current_project_id)->simplePaginate(config('web.pagination_size'))), ]); } #[Get('/json', name: 'storage-providers.json')] public function json(): ResourceCollection { $this->authorize('viewAny', StorageProvider::class); return StorageProviderResource::collection(StorageProvider::getByProjectId(user()->current_project_id)->get()); } #[Post('/', name: 'storage-providers.store')] public function store(Request $request): RedirectResponse { $this->authorize('create', StorageProvider::class); app(CreateStorageProvider::class)->create(user(), user()->currentProject, $request->all()); return back()->with('success', 'Storage provider created.'); } #[Patch('/{storageProvider}', name: 'storage-providers.update')] public function update(Request $request, StorageProvider $storageProvider): RedirectResponse { $this->authorize('update', $storageProvider); app(EditStorageProvider::class)->edit($storageProvider, user()->currentProject, $request->all()); return back()->with('success', 'Storage provider updated.'); } #[Delete('{storageProvider}', name: 'storage-providers.destroy')] public function destroy(StorageProvider $storageProvider): RedirectResponse { $this->authorize('delete', $storageProvider); app(DeleteStorageProvider::class)->delete($storageProvider); return to_route('storage-providers')->with('success', 'Storage provider deleted.'); } }