|
2 | 2 |
|
3 | 3 | Ce module gère la synchronisation des données entre le client et le serveur via deux opérations principales : |
4 | 4 |
|
5 | | -- **download** : Téléchargement des données du serveur vers le client. |
6 | 5 | - **upload** : Envoi des données locales du client vers le serveur. |
| 6 | +- **download** : Téléchargement des données du serveur vers le client. |
7 | 7 |
|
8 | 8 | Chaque étape de la synchronisation est suivie par des actions Redux pour permettre le suivi de la progression et la gestion des états. |
9 | 9 |
|
| 10 | +Dans l'ordre: |
| 11 | +1. **upload** |
| 12 | +2. **download** |
| 13 | + |
| 14 | +(**upload** appel la fonction **download** quand **upload** est bien terminée) |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +### 1. Envoi (`upload`) |
| 19 | + |
| 20 | +#### a. Initialisation |
| 21 | + |
| 22 | +- Vérifie que la synchronisation n’est pas déjà en cours. |
| 23 | +- Déclenche l’action `runningUpload`. |
| 24 | +- Initialise le stockage local pour la synchronisation. |
| 25 | + |
| 26 | +#### b. Envoi des interrogations |
| 27 | + |
| 28 | +- Récupère toutes les interrogations locales. |
| 29 | +- Pour chaque interrogation : |
| 30 | + - Tente de l’envoyer via l’API. |
| 31 | + - **Gestion d’erreur** : |
| 32 | + - Si le serveur répond 423, considère comme succès. |
| 33 | + - Si le serveur répond 400, 403, 404 ou 500 : |
| 34 | + - Tente de l’envoyer dans une zone temporaire. |
| 35 | + - Marque l’interrogation comme envoyée en zone temporaire. |
| 36 | + - Supprime le paradata associé. |
| 37 | + - Si l’envoi en zone temporaire échoue, log l’erreur et arrête la synchronisation. |
| 38 | + - Pour toute autre erreur, log et arrête la synchronisation. |
| 39 | + - Supprime l’interrogation locale après envoi (succès ou zone temporaire). |
| 40 | + - Déclenche l’action de progression. |
| 41 | + |
| 42 | +#### c. Envoi des paradata (si la télémétrie n’est pas désactivée) |
| 43 | + |
| 44 | +- Récupère tous les paradata locaux non supprimés. |
| 45 | +- Pour chaque paradata : |
| 46 | + - Tente de l’envoyer via l’API. |
| 47 | + - Supprime le paradata local après envoi. |
| 48 | + - Déclenche l’action de progression. |
| 49 | + - **Gestion d’erreur** : Log l’erreur en cas d’échec, mais continue la synchronisation. |
| 50 | + |
| 51 | +#### d. Finalisation |
| 52 | + |
| 53 | +- Déclenche l’action `uploadCompleted`. |
| 54 | +- lance un téléchargement pour rafraîchir les données locales. |
| 55 | +- **Gestion d’erreur globale** : Si une erreur non gérée survient, marque une erreur dans le stockage local et déclenche l’action `uploadError`. |
| 56 | + |
10 | 57 | --- |
11 | 58 |
|
12 | 59 | ## Fonctionnement étape par étape |
13 | 60 |
|
14 | | -### 1. Téléchargement (`download`) |
| 61 | +### 2. Téléchargement (`download`) |
15 | 62 |
|
16 | 63 | #### a. Initialisation |
17 | 64 |
|
@@ -57,46 +104,7 @@ Chaque étape de la synchronisation est suivie par des actions Redux pour permet |
57 | 104 | - Déclenche l’action `downloadCompleted`. |
58 | 105 | - **Gestion d’erreur globale** : Si une erreur non gérée survient, log l’erreur, marque une erreur dans le stockage local, et déclenche l’action `downloadFailed`. |
59 | 106 |
|
60 | | ---- |
61 | | - |
62 | | -### 2. Envoi (`upload`) |
63 | | - |
64 | | -#### a. Initialisation |
65 | | - |
66 | | -- Vérifie que la synchronisation n’est pas déjà en cours. |
67 | | -- Déclenche l’action `runningUpload`. |
68 | | -- Initialise le stockage local pour la synchronisation. |
69 | | - |
70 | | -#### b. Envoi des interrogations |
71 | | - |
72 | | -- Récupère toutes les interrogations locales. |
73 | | -- Pour chaque interrogation : |
74 | | - - Tente de l’envoyer via l’API. |
75 | | - - **Gestion d’erreur** : |
76 | | - - Si le serveur répond 423, considère comme succès. |
77 | | - - Si le serveur répond 400, 403, 404 ou 500 : |
78 | | - - Tente de l’envoyer dans une zone temporaire. |
79 | | - - Marque l’interrogation comme envoyée en zone temporaire. |
80 | | - - Supprime le paradata associé. |
81 | | - - Si l’envoi en zone temporaire échoue, log l’erreur et arrête la synchronisation. |
82 | | - - Pour toute autre erreur, log et arrête la synchronisation. |
83 | | - - Supprime l’interrogation locale après envoi (succès ou zone temporaire). |
84 | | - - Déclenche l’action de progression. |
85 | | - |
86 | | -#### c. Envoi des paradata (si la télémétrie n’est pas désactivée) |
87 | | - |
88 | | -- Récupère tous les paradata locaux non supprimés. |
89 | | -- Pour chaque paradata : |
90 | | - - Tente de l’envoyer via l’API. |
91 | | - - Supprime le paradata local après envoi. |
92 | | - - Déclenche l’action de progression. |
93 | | - - **Gestion d’erreur** : Log l’erreur en cas d’échec, mais continue la synchronisation. |
94 | | - |
95 | | -#### d. Finalisation |
96 | 107 |
|
97 | | -- Déclenche l’action `uploadCompleted`. |
98 | | -- Relance un téléchargement pour rafraîchir les données locales. |
99 | | -- **Gestion d’erreur globale** : Si une erreur non gérée survient, marque une erreur dans le stockage local et déclenche l’action `uploadError`. |
100 | 108 |
|
101 | 109 | --- |
102 | 110 |
|
|
0 commit comments