| import api from './axiosInstance.api'; |
|
|
| export interface ActivityLog { |
| _id: string; |
| user: { |
| _id: string; |
| username: string; |
| email: string; |
| profilePhoto: string; |
| role: string; |
| }; |
| action: string; |
| category: string; |
| description: string; |
| metadata: any; |
| timestamp: string; |
| success: boolean; |
| } |
|
|
| export interface ActivityTimelineResponse { |
| activities: ActivityLog[]; |
| pagination: { |
| total: number; |
| limit: number; |
| skip: number; |
| pages: number; |
| }; |
| } |
|
|
| |
| |
| |
| export const getUserActivityTimeline = async (params: { |
| userId?: string; |
| role?: string; |
| limit?: number; |
| skip?: number; |
| startDate?: string; |
| endDate?: string; |
| category?: string; |
| action?: string; |
| }): Promise<ActivityTimelineResponse> => { |
| const response = await api.get<{ success: boolean; data: ActivityTimelineResponse }>('/activity/timeline', { params }); |
| return response.data.data; |
| }; |
|
|
| |
| |
| |
| export const getDashboardOverview = async (params: { |
| startDate?: string; |
| endDate?: string; |
| organization?: string; |
| } = {}): Promise<any> => { |
| const response = await api.get('/analytics/overview', { params }); |
| return response.data; |
| }; |
|
|
| |
| |
| |
| export const getThemeCoverage = async (params: { |
| startDate?: string; |
| endDate?: string; |
| organization?: string; |
| } = {}): Promise<any> => { |
| const response = await api.get('/analytics/theme-coverage', { params }); |
| return response.data; |
| }; |
|
|
| |
| |
| |
| export const getOrganizationStats = async (params: { |
| startDate?: string; |
| endDate?: string; |
| } = {}): Promise<any> => { |
| const response = await api.get('/analytics/organizations', { params }); |
| return response.data; |
| }; |
|
|
| |
| |
| |
| export const getSystemRecentActivities = async (params: { |
| limit?: number; |
| skip?: number; |
| } = {}): Promise<ActivityTimelineResponse> => { |
| const response = await api.get<{ success: boolean; data: ActivityTimelineResponse }>('/activity/recent', { params }); |
| return response.data.data; |
| }; |
|
|
| export default { |
| getUserActivityTimeline, |
| getDashboardOverview, |
| getThemeCoverage, |
| getOrganizationStats, |
| getSystemRecentActivities |
| }; |
|
|