middleware( function ($request, $next) { $this->groupRepository = app(TransactionGroupRepositoryInterface::class); return $next($request); } ); } /** * This endpoint is documented at: * https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/transactions/updateTransaction * * Update a transaction. * * @throws FireflyException */ public function update(UpdateRequest $request, TransactionGroup $transactionGroup): JsonResponse { app('log')->debug('Now in update routine for transaction group [v2]!'); $data = $request->getAll(); $transactionGroup = $this->groupRepository->update($transactionGroup, $data); $applyRules = $data['apply_rules'] ?? true; $fireWebhooks = $data['fire_webhooks'] ?? true; $runRecalculations = true; event(new UpdatedTransactionGroup($transactionGroup, $applyRules, $fireWebhooks, $runRecalculations)); app('preferences')->mark(); /** @var User $admin */ $admin = auth()->user(); // use new group collector: /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); $collector->setUser($admin)->setTransactionGroup($transactionGroup); $selectedGroup = $collector->getGroups()->first(); if (null === $selectedGroup) { throw new FireflyException('200032: Cannot find transaction. Possibly, a rule deleted this transaction after its creation.'); } $transformer = new TransactionGroupTransformer(); $transformer->setParameters($this->parameters); return response()->api($this->jsonApiObject('transactions', $selectedGroup, $transformer))->header('Content-Type', self::CONTENT_TYPE); } }