Files
towercontrol/src/actions/metrics.ts
Julien Froidefond ed16e2bb80 feat: complete Phase 2 of service refactoring
- 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.
2025-09-23 10:15:13 +02:00

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'
};
}
}