authenticatedUser($request) ->gitConnections() ->get(), ); } public function store(StoreUserGitConnectionRequest $request): JsonResponse { $gitConnection = $this->storeUserGitConnection->handle($this->authenticatedUser($request), $request->validated()); return UserGitConnectionResource::make($gitConnection) ->additional(['meta' => ['message' => 'Git connection was added.']]) ->response() ->setStatusCode(201); } public function update(UpdateUserGitConnectionRequest $request, UserGitConnection $gitConnection): JsonResponse { $this->abortUnlessOwner($request, $gitConnection); $gitConnection = $this->updateUserGitConnection->handle($gitConnection, $request->validated()); return UserGitConnectionResource::make($gitConnection) ->additional(['meta' => ['message' => 'Git connection was updated.']]) ->response(); } public function destroy(Request $request, UserGitConnection $gitConnection): JsonResponse { $this->abortUnlessOwner($request, $gitConnection); $this->deleteUserGitConnection->handle($gitConnection); return response()->json(null, 204); } private function abortUnlessOwner(Request $request, UserGitConnection $gitConnection): void { abort_unless($gitConnection->user_id === $this->authenticatedUser($request)->id, 403); } }