Files
lcbp3/frontend/lib/services/dashboard.service.ts
admin dcd126d704
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled
251208:0010 Backend & Frontend Debug
2025-12-08 00:10:37 +07:00

43 lines
1.4 KiB
TypeScript

import apiClient from "@/lib/api/client";
import { DashboardStats, ActivityLog, PendingTask } from "@/types/dashboard";
export const dashboardService = {
getStats: async (): Promise<DashboardStats> => {
const response = await apiClient.get("/dashboard/stats");
return response.data;
},
getRecentActivity: async (): Promise<ActivityLog[]> => {
try {
const response = await apiClient.get("/dashboard/activity");
// ตรวจสอบว่า response.data เป็น array จริงๆ
if (Array.isArray(response.data)) {
return response.data;
}
console.warn('Dashboard activity: expected array, got:', typeof response.data);
return [];
} catch (error) {
console.error('Failed to fetch recent activity:', error);
return [];
}
},
getPendingTasks: async (): Promise<PendingTask[]> => {
try {
const response = await apiClient.get("/dashboard/pending");
// Backend คืน { data: [], meta: {} } ต้องดึง data ออกมา
if (response.data?.data && Array.isArray(response.data.data)) {
return response.data.data;
}
if (Array.isArray(response.data)) {
return response.data;
}
console.warn('Dashboard pending: unexpected format:', typeof response.data);
return [];
} catch (error) {
console.error('Failed to fetch pending tasks:', error);
return [];
}
},
};