56 lines
1.3 KiB
PHP
56 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Modules\Dashboard\Controllers;
|
|
|
|
use App\Core\BaseApiController;
|
|
use App\Modules\Dashboard\Services\DashboardService;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
|
|
/**
|
|
* Dashboard Controller
|
|
*
|
|
* API endpoints for monitoring attendance system.
|
|
*/
|
|
class DashboardController extends BaseApiController
|
|
{
|
|
protected DashboardService $dashboardService;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->dashboardService = new DashboardService();
|
|
}
|
|
|
|
/**
|
|
* GET /api/dashboard/summary
|
|
*
|
|
* @return ResponseInterface
|
|
*/
|
|
public function summary(): ResponseInterface
|
|
{
|
|
$data = $this->dashboardService->getSummary();
|
|
return $this->successResponse($data, 'Dashboard summary');
|
|
}
|
|
|
|
/**
|
|
* GET /api/dashboard/realtime
|
|
*
|
|
* @return ResponseInterface
|
|
*/
|
|
public function realtime(): ResponseInterface
|
|
{
|
|
$data = $this->dashboardService->getRealtimeCheckins(20);
|
|
return $this->successResponse($data, 'Last 20 check-ins');
|
|
}
|
|
|
|
/**
|
|
* GET /api/dashboard/devices
|
|
*
|
|
* @return ResponseInterface
|
|
*/
|
|
public function devices(): ResponseInterface
|
|
{
|
|
$data = $this->dashboardService->getDevices();
|
|
return $this->successResponse($data, 'Device monitoring');
|
|
}
|
|
}
|