- Marked tasks in `TODO.md` as completed for moving analytics-related files to the `analytics` directory and correcting imports across the codebase. - Updated imports in `src/actions/analytics.ts`, `src/actions/metrics.ts`, and various components to reflect the new structure. - Removed unused `analytics.ts`, `manager-summary.ts`, and `metrics.ts` files to streamline the codebase.
62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
'use server';
|
|
|
|
import { MetricsService, WeeklyMetricsOverview, VelocityTrend } from '@/services/analytics/metrics';
|
|
import { getToday } from '@/lib/date-utils';
|
|
|
|
/**
|
|
* Récupère les métriques hebdomadaires pour une date donnée
|
|
*/
|
|
export async function getWeeklyMetrics(date?: Date): Promise<{
|
|
success: boolean;
|
|
data?: WeeklyMetricsOverview;
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
const targetDate = date || getToday();
|
|
const metrics = await MetricsService.getWeeklyMetrics(targetDate);
|
|
|
|
return {
|
|
success: true,
|
|
data: metrics
|
|
};
|
|
} catch (error) {
|
|
console.error('Error fetching weekly metrics:', error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : 'Failed to fetch weekly metrics'
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Récupère les tendances de vélocité sur plusieurs semaines
|
|
*/
|
|
export async function getVelocityTrends(weeksBack: number = 4): Promise<{
|
|
success: boolean;
|
|
data?: VelocityTrend[];
|
|
error?: string;
|
|
}> {
|
|
try {
|
|
if (weeksBack < 1 || weeksBack > 12) {
|
|
return {
|
|
success: false,
|
|
error: 'Invalid weeksBack parameter (must be 1-12)'
|
|
};
|
|
}
|
|
|
|
const trends = await MetricsService.getVelocityTrends(weeksBack);
|
|
|
|
return {
|
|
success: true,
|
|
data: trends
|
|
};
|
|
} catch (error) {
|
|
console.error('Error fetching velocity trends:', error);
|
|
return {
|
|
success: false,
|
|
error: error instanceof Error ? error.message : 'Failed to fetch velocity trends'
|
|
};
|
|
}
|
|
}
|
|
|