. */ declare(strict_types=1); namespace FireflyIII\Api\V2\Controllers\UserGroup; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\UserGroup\UpdateMembershipRequest; use FireflyIII\Api\V2\Request\UserGroup\UpdateRequest; use FireflyIII\Models\UserGroup; use FireflyIII\Repositories\UserGroup\UserGroupRepositoryInterface; use FireflyIII\Transformers\V2\UserGroupTransformer; use Illuminate\Http\JsonResponse; /** * Class UpdateController */ class UpdateController extends Controller { // basic update van group // add user, add rights, remove user, remove rights. private UserGroupRepositoryInterface $repository; public function __construct() { parent::__construct(); $this->middleware( function ($request, $next) { $this->repository = app(UserGroupRepositoryInterface::class); return $next($request); } ); } public function update(UpdateRequest $request, UserGroup $userGroup): JsonResponse { $all = $request->getAll(); $userGroup = $this->repository->update($userGroup, $all); $transformer = new UserGroupTransformer(); $transformer->setParameters($this->parameters); return response() ->api($this->jsonApiObject('user-groups', $userGroup, $transformer)) ->header('Content-Type', self::CONTENT_TYPE) ; } public function updateMembership(UpdateMembershipRequest $request, UserGroup $userGroup): JsonResponse { $all = $request->getAll(); $userGroup = $this->repository->updateMembership($userGroup, $all); $transformer = new UserGroupTransformer(); $transformer->setParameters($this->parameters); return response() ->api($this->jsonApiObject('user-groups', $userGroup, $transformer)) ->header('Content-Type', self::CONTENT_TYPE) ; } public function useUserGroup(UserGroup $userGroup): JsonResponse { // group validation is already in place, so can just update the user. $this->repository->useUserGroup($userGroup); return response()->json([], 204); } }