Files
WooNooW/admin-spa/src/lib/analyticsApi.ts
dwindown 232059e928 feat: Complete Dashboard API Integration with Analytics Controller
 Features:
- Implemented API integration for all 7 dashboard pages
- Added Analytics REST API controller with 7 endpoints
- Full loading and error states with retry functionality
- Seamless dummy data toggle for development

📊 Dashboard Pages:
- Customers Analytics (complete)
- Revenue Analytics (complete)
- Orders Analytics (complete)
- Products Analytics (complete)
- Coupons Analytics (complete)
- Taxes Analytics (complete)
- Dashboard Overview (complete)

🔌 Backend:
- Created AnalyticsController.php with REST endpoints
- All endpoints return 501 (Not Implemented) for now
- Ready for HPOS-based implementation
- Proper permission checks

🎨 Frontend:
- useAnalytics hook for data fetching
- React Query caching
- ErrorCard with retry functionality
- TypeScript type safety
- Zero build errors

📝 Documentation:
- DASHBOARD_API_IMPLEMENTATION.md guide
- Backend implementation roadmap
- Testing strategy

🔧 Build:
- All pages compile successfully
- Production-ready with dummy data fallback
- Zero TypeScript errors
2025-11-04 11:19:00 +07:00

65 lines
1.5 KiB
TypeScript

import { api } from './api';
/**
* Analytics API
* Endpoints for dashboard analytics data
*/
export interface AnalyticsParams {
period?: string; // '7', '14', '30', 'all'
start_date?: string; // ISO date for custom range
end_date?: string; // ISO date for custom range
granularity?: 'day' | 'week' | 'month';
}
export const AnalyticsApi = {
/**
* Dashboard Overview
* GET /woonoow/v1/analytics/overview
*/
overview: (params?: AnalyticsParams) =>
api.get('/woonoow/v1/analytics/overview', params),
/**
* Revenue Analytics
* GET /woonoow/v1/analytics/revenue
*/
revenue: (params?: AnalyticsParams) =>
api.get('/woonoow/v1/analytics/revenue', params),
/**
* Orders Analytics
* GET /woonoow/v1/analytics/orders
*/
orders: (params?: AnalyticsParams) =>
api.get('/woonoow/v1/analytics/orders', params),
/**
* Products Analytics
* GET /woonoow/v1/analytics/products
*/
products: (params?: AnalyticsParams) =>
api.get('/woonoow/v1/analytics/products', params),
/**
* Customers Analytics
* GET /woonoow/v1/analytics/customers
*/
customers: (params?: AnalyticsParams) =>
api.get('/woonoow/v1/analytics/customers', params),
/**
* Coupons Analytics
* GET /woonoow/v1/analytics/coupons
*/
coupons: (params?: AnalyticsParams) =>
api.get('/woonoow/v1/analytics/coupons', params),
/**
* Taxes Analytics
* GET /woonoow/v1/analytics/taxes
*/
taxes: (params?: AnalyticsParams) =>
api.get('/woonoow/v1/analytics/taxes', params),
};