DONE: merge heir tab into profile tab, santize userIcNum and name, rename to malay, add stat card on user list
This commit is contained in:
@@ -269,6 +269,43 @@ class UserController extends BaseCrudController
|
||||
}
|
||||
}
|
||||
|
||||
public function stats(Request $request): JsonResponse
|
||||
{
|
||||
$this->authorize('viewAny', $this->modelClass);
|
||||
|
||||
try {
|
||||
$request->validate([
|
||||
'join_date_from' => 'nullable|date',
|
||||
'join_date_to' => 'nullable|date',
|
||||
'leave_date_from' => 'nullable|date',
|
||||
'leave_date_to' => 'nullable|date',
|
||||
]);
|
||||
|
||||
$dateFilters = array_filter([
|
||||
'join_date_from' => $request->get('join_date_from'),
|
||||
'join_date_to' => $request->get('join_date_to'),
|
||||
'leave_date_from' => $request->get('leave_date_from'),
|
||||
'leave_date_to' => $request->get('leave_date_to'),
|
||||
]);
|
||||
|
||||
$stats = $this->userService->getListStats(
|
||||
$request->get('search', ''),
|
||||
$request->get('status', ''),
|
||||
$dateFilters
|
||||
);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'data' => $stats,
|
||||
'message' => 'User stats retrieved successfully.',
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
Log::error("Error fetching {$this->resourceNamePlural} stats: ".$e->getMessage());
|
||||
|
||||
return $this->errorResponse('Failed to retrieve user stats.', 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function restore(string $id): JsonResponse
|
||||
{
|
||||
$this->authorize('restore', $this->modelClass);
|
||||
|
||||
Reference in New Issue
Block a user