Trang Submissions đang gặp 3 lỗi 400 từ các API endpoints:
submissions-summary?top=5- trả về{"success": false, "message": "Please login to access this"}all-submissions?page=1&limit=10...- hiển thị màu đỏ (lỗi)submission-statistics- hiển thị màu đỏ (lỗi)
- API endpoints chưa tồn tại: Các endpoints này chưa được implement ở backend
- Authentication issues: User có thể chưa đăng nhập hoặc không có quyền admin
- Frontend gọi sai URL: Đang gọi trực tiếp đến backend server thay vì local API
Đã tạo 3 API routes mới trong Next.js:
// src/app/api/revenue/all-submissions/route.ts
// src/app/api/revenue/submission-statistics/route.ts
// src/app/api/revenue/submissions-summary/route.tsTạo utility function để check admin role:
// src/lib/auth-utils.ts
export async function checkAdminAuth(request: NextRequest) {
// Check NextAuth session và admin role
}Thay đổi URL từ backend server sang local API:
// Trước
const response = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URI}/revenue/all-submissions?${params}`);
// Sau
const response = await fetch(`/api/revenue/all-submissions?${params}`);User Request → NextAuth Session Check → Admin Role Check → API Response
- GET
/api/revenue/all-submissions- Danh sách submissions với pagination - GET
/api/revenue/submission-statistics- Thống kê tổng quan - GET
/api/revenue/submissions-summary?top=5- Top instructors
{
success: boolean,
data: {
submissions: SubmissionData[],
pagination: PaginationData
}
}Hiện tại sử dụng mock data cho development:
- 5 instructors với thông tin đầy đủ
- Statistics với các metrics quan trọng
- Top 5 instructors theo submission amount
- ✅ Authentication required: Chỉ user đã đăng nhập mới truy cập được
- ✅ Admin role required: Chỉ admin mới có quyền xem submissions
- ✅ Proper error handling: Trả về status code và message phù hợp
- ✅ 3 API calls thành công: Không còn lỗi 400
- ✅ Authentication working: User phải đăng nhập và có role admin
- ✅ Data loading: Trang submissions hiển thị dữ liệu đầy đủ
- ✅ Fallback mechanism: Vẫn có mock data khi API không khả dụng
Khi backend sẵn sàng, chỉ cần:
- Thay thế mock data bằng real database queries
- Cập nhật URL về backend server
- Xóa mock indicators trong UI
- Các API routes này chỉ dành cho admin users
- Mock data được sử dụng cho development
- Authentication dựa trên NextAuth session
- Error handling đầy đủ với proper HTTP status codes