mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
60 lines
1.3 KiB
PHP
60 lines
1.3 KiB
PHP
<?php
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use DB;
|
|
use App\Models\User;
|
|
use ByteUnits\Metric;
|
|
use App\Services\StripeService;
|
|
use Laravel\Cashier\Subscription;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Resources\UsersCollection;
|
|
|
|
class DashboardController extends Controller
|
|
{
|
|
/**
|
|
* @param StripeService $stripe
|
|
*/
|
|
public function __construct(StripeService $stripe)
|
|
{
|
|
$this->stripe = $stripe;
|
|
}
|
|
|
|
/**
|
|
* Get data for dashboard
|
|
*
|
|
* @return array
|
|
*/
|
|
public function index()
|
|
{
|
|
// Get total premium users
|
|
$premium_users = Subscription::whereStripeStatus('active')
|
|
->count();
|
|
|
|
// Get total storage usage
|
|
$storage_usage = Metric::bytes(
|
|
DB::table('files')->sum('filesize')
|
|
)->format();
|
|
|
|
return [
|
|
'license' => get_setting('license'),
|
|
'app_version' => config('vuefilemanager.version'),
|
|
'total_users' => User::count(),
|
|
'total_used_space' => $storage_usage,
|
|
'total_premium_users' => $premium_users,
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Get the newest users
|
|
*
|
|
* @return UsersCollection
|
|
*/
|
|
public function newbies()
|
|
{
|
|
return new UsersCollection(
|
|
User::sortable(['created_at' => 'desc'])
|
|
->paginate(10)
|
|
);
|
|
}
|
|
}
|