'use server'; import { JiraAnalyticsService } from '@/services/jira-analytics'; import { userPreferencesService } from '@/services/user-preferences'; import { JiraAnalytics } from '@/lib/types'; export type JiraAnalyticsResult = { success: boolean; data?: JiraAnalytics; error?: string; }; /** * Server Action pour récupérer les analytics Jira du projet configuré */ export async function getJiraAnalytics(forceRefresh = false): Promise { try { // Récupérer la config Jira depuis la base de données const jiraConfig = await userPreferencesService.getJiraConfig(); if (!jiraConfig.enabled || !jiraConfig.baseUrl || !jiraConfig.email || !jiraConfig.apiToken) { return { success: false, error: 'Configuration Jira manquante. Configurez Jira dans les paramètres.' }; } if (!jiraConfig.projectKey) { return { success: false, error: 'Aucun projet configuré pour les analytics. Configurez un projet dans les paramètres Jira.' }; } // Créer le service d'analytics const analyticsService = new JiraAnalyticsService({ enabled: jiraConfig.enabled, baseUrl: jiraConfig.baseUrl, email: jiraConfig.email, apiToken: jiraConfig.apiToken, projectKey: jiraConfig.projectKey }); // Récupérer les analytics (avec cache ou actualisation forcée) const analytics = await analyticsService.getProjectAnalytics(forceRefresh); return { success: true, data: analytics }; } catch (error) { console.error('❌ Erreur lors du calcul des analytics Jira:', error); return { success: false, error: error instanceof Error ? error.message : 'Erreur lors du calcul des analytics' }; } }