. */ declare(strict_types=1); 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); } ); } /** * This endpoint is documented at: * https://api-docs.firefly-iii.org/#/insight/insightTransfers * * @param GenericRequest $request * * @return JsonResponse */ public function asset(GenericRequest $request): JsonResponse { $start = $request->getStart(); $end = $request->getEnd(); $assetAccounts = $request->getAssetAccounts(); $transfers = $this->opsRepository->sumTransfers($start, $end, $assetAccounts); return response()->json($transfers); } }