authorize('viewAny', SourceControl::class); return Inertia::render('source-controls/index', [ 'sourceControls' => SourceControlResource::collection(SourceControl::getByProjectId(user()->current_project_id)->simplePaginate(config('web.pagination_size'))), ]); } #[Get('/json', name: 'source-controls.json')] public function json(): ResourceCollection { $this->authorize('viewAny', SourceControl::class); return SourceControlResource::collection(SourceControl::getByProjectId(user()->current_project_id)->get()); } #[Post('/', name: 'source-controls.store')] public function store(Request $request): RedirectResponse { $this->authorize('create', SourceControl::class); app(ConnectSourceControl::class)->connect(user()->currentProject, $request->all()); return back()->with('success', 'Source control created.'); } #[Patch('/{sourceControl}', name: 'source-controls.update')] public function update(Request $request, SourceControl $sourceControl): RedirectResponse { $this->authorize('update', $sourceControl); app(EditSourceControl::class)->edit($sourceControl, user()->currentProject, $request->all()); return back()->with('success', 'Source control updated.'); } #[Delete('{sourceControl}', name: 'source-controls.destroy')] public function destroy(SourceControl $sourceControl): RedirectResponse { $this->authorize('delete', $sourceControl); app(DeleteSourceControl::class)->delete($sourceControl); return to_route('source-controls')->with('success', 'Source control deleted.'); } }