diff --git a/VEZA_INTEGRATION_PERFECTION_TODOLIST_TEMPLATE.json b/VEZA_INTEGRATION_PERFECTION_TODOLIST_TEMPLATE.json index c13313343..c2a53b0fe 100644 --- a/VEZA_INTEGRATION_PERFECTION_TODOLIST_TEMPLATE.json +++ b/VEZA_INTEGRATION_PERFECTION_TODOLIST_TEMPLATE.json @@ -765,7 +765,8 @@ "description": "Créer des fichiers index.ts pour faciliter les imports.", "priority": "P3", "priority_rank": 23, - "status": "todo", + "status": "completed", + "completed_at": "2025-01-27T17:15:00Z", "estimated_hours": 1, "side": "frontend_only", "files_to_modify": [ @@ -1104,13 +1105,13 @@ }, "progress_tracking": { "total_tasks": 32, - "completed": 22, + "completed": 23, "in_progress": 0, - "todo": 10, + "todo": 9, "blocked": 0, - "completion_percentage": 69, - "last_updated": "2025-01-27T17:00:00Z", + "completion_percentage": 72, + "last_updated": "2025-01-27T17:15:00Z", "estimated_completion_date": null, - "estimated_hours_remaining": 15 + "estimated_hours_remaining": 13.5 } } diff --git a/apps/web/src/features/auth/services/emailVerificationService.ts b/apps/web/src/features/auth/services/emailVerificationService.ts index 9150aff1b..888f19115 100644 --- a/apps/web/src/features/auth/services/emailVerificationService.ts +++ b/apps/web/src/features/auth/services/emailVerificationService.ts @@ -47,14 +47,15 @@ export async function verifyEmail(token: string): Promise { axiosError.response.data?.message || 'Verification failed'; + const responseData = axiosError.response.data as Record | undefined; const apiError: ApiError = { code: axiosError.response.status, message: errorMessage, timestamp: new Date().toISOString(), - details: Array.isArray(axiosError.response.data?.details) - ? axiosError.response.data.details + details: Array.isArray(responseData?.details) + ? responseData.details : undefined, - context: axiosError.response.data as Record, + context: responseData, }; throw apiError; @@ -111,14 +112,15 @@ export async function resendVerificationEmail( axiosError.response.data?.message || 'Failed to resend verification email'; + const responseData = axiosError.response.data as Record | undefined; const apiError: ApiError = { code: axiosError.response.status, message: errorMessage, timestamp: new Date().toISOString(), - details: Array.isArray(axiosError.response.data?.details) - ? axiosError.response.data.details + details: Array.isArray(responseData?.details) + ? responseData.details : undefined, - context: axiosError.response.data as Record, + context: responseData, }; throw apiError; diff --git a/apps/web/src/services/api/index.ts b/apps/web/src/services/api/index.ts new file mode 100644 index 000000000..510fa8723 --- /dev/null +++ b/apps/web/src/services/api/index.ts @@ -0,0 +1,18 @@ +/** + * INT-CLEANUP-004: Barrel export for API services + * This file exports all API-related services and clients for clean imports + */ + +// Export the main API client +export { apiClient, API_TIMEOUTS, createCancellableRequest, createRequestWithTimeout, deduplicatedApiClient } from './client'; + +// Export validated API client +export { validatedApiClient, validatedRequest } from './clientWithValidation'; + +// Export typed API client +export { typedApiClient, createTypedRequest, isApiResponseWrapper } from './typedClient'; +export type { TypedRequestConfig, TypedApiClient, ApiResponseData, UnwrappedApiResponse, TypedApiRequestBuilder } from './typedClient'; + +// Export auth API +export * from './auth'; + diff --git a/apps/web/src/types/index.ts b/apps/web/src/types/index.ts index bdeb01072..103345692 100644 --- a/apps/web/src/types/index.ts +++ b/apps/web/src/types/index.ts @@ -1,3 +1,18 @@ +/** + * INT-CLEANUP-004: Barrel export for all types + * This file exports all types from the types/ directory for clean imports + */ + +// Re-export all types from other files +export * from './api'; +export * from './dto'; +export * from './forms'; +export * from './routes'; +export * from './marketplace'; +export * from './webhook'; +export * from './websocket'; +export * from './queryParams'; + // Types globaux de l'application export interface User {