. */ namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; use FireflyIII\Repositories\Account\OperationsRepositoryInterface; use FireflyIII\Support\Http\Api\ApiSupport; use Illuminate\Http\JsonResponse; /** * Class AccountController */ class AccountController extends Controller { use ApiSupport; private OperationsRepositoryInterface $opsRepository; /** * AccountController constructor. * * @codeCoverageIgnore */ public function __construct() { parent::__construct(); $this->middleware( function ($request, $next) { $user = auth()->user(); $this->opsRepository = app(OperationsRepositoryInterface::class); $this->opsRepository->setUser($user); return $next($request); } ); } /** * TODO same code as Expense/AccountController. * * @param GenericRequest $request * * @return JsonResponse */ public function asset(GenericRequest $request): JsonResponse { $start = $request->getStart(); $end = $request->getEnd(); $assetAccounts = $request->getAssetAccounts(); $income = $this->opsRepository->sumTransfers($start, $end, $assetAccounts); $result = []; /** @var array $entry */ foreach ($income as $entry) { $result[] = [ 'difference' => $entry['sum'], 'difference_float' => (float)$entry['sum'], 'currency_id' => (string)$entry['currency_id'], 'currency_code' => $entry['currency_code'], ]; } return response()->json($result); } }