2024-08-06 22:59:17 -05:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
2024-08-21 20:47:06 -05:00
|
|
|
use App\Models\Holding;
|
|
|
|
|
use Illuminate\Http\Request;
|
2024-08-06 22:59:17 -05:00
|
|
|
|
|
|
|
|
class DashboardController extends Controller
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Display the specified resource.
|
|
|
|
|
*/
|
|
|
|
|
public function show(Request $request)
|
|
|
|
|
{
|
2024-08-27 21:17:54 -05:00
|
|
|
$user = $request->user()->load(['portfolios', 'holdings', 'transactions']);
|
2024-08-06 22:59:17 -05:00
|
|
|
|
2024-08-21 20:47:06 -05:00
|
|
|
// get portfolio metrics
|
2024-10-23 13:43:34 -05:00
|
|
|
$metrics = cache()->remember(
|
2024-08-21 20:47:06 -05:00
|
|
|
'dashboard-metrics-' . $user->id,
|
|
|
|
|
10,
|
|
|
|
|
function () {
|
|
|
|
|
return
|
|
|
|
|
Holding::query()
|
2024-08-27 21:17:54 -05:00
|
|
|
->myHoldings()
|
2024-08-29 18:46:21 -05:00
|
|
|
->withPortfolioMetrics()
|
2024-08-21 20:47:06 -05:00
|
|
|
->first();
|
|
|
|
|
}
|
|
|
|
|
);
|
2024-08-06 22:59:17 -05:00
|
|
|
|
2024-08-21 20:47:06 -05:00
|
|
|
return view('dashboard', compact('user', 'metrics'));
|
2024-08-06 22:59:17 -05:00
|
|
|
}
|
|
|
|
|
}
|