Aller au contenu principal

Synchronisation

Dans un contexte de collecte, l'application Queen doit pouvoir fonctionner en étant offline. Il est donc nécessaire de pouvoir effectuer, via une action de l'utilisateur, une synchronisation pour récupérer les données localement et les mettre à jour dans l'api questionnaire.

La synchronisation pousse d'abord les données locales de l'utilisateur dans l'api, avant de récupérer les nouvelles données.
Cela assure que les données conservées sont bien celles modifiées en local par l'utilisateur.

Processus de synchronisation

  • envoi de toutes les unités enquêtées stockées localement
  • récupération de la liste des campagnes pour lesquelles l'utilisateur au moins une unité enquêtée qui lui est affectée
  • récupération du modèle de questionnaire pour chacune de ces campagnes
  • récupération, en parallèle :
    • des unités enquêtées pour chacune de ces campagnes
    • des nomenclatures pour chacun de ces modèles de questionnaire

Gestion des erreurs

ActionType d'erreurConséquence
Récupération
  • d'une campagne
  • d'un modèle de questionnaire
  • d'une unité enquêtée
  • d'une nomenclature
format non reconnuArrêt de la synchronisation
Récupération d'une unité enquêtée400, 403, 404, 500Unité non récupérée, poursuite de la synchronisation
Envoi d'une unité enquêtée400, 403, 404, 500Unité non mise à jour, suppression de l'unité en locale (déplacée en "temp zone"), poursuite de la synchronisation

Appels Api

Campagnes

TypeRouteDescriptionSécurisé par Bearer tokenExemple de réponse
GET/api/campaignsRécupère la liste des campagnes de l'utilisateurouijson {}

Modèles de questionnaire

TypeRouteDescriptionSécurisé par Bearer tokenExemple de réponse
GET/api/questionnaire/${questionnaireId}Récupère le modèle de questionnaire Lunaticouijson {}

Unités enquêtées

TypeRouteDescriptionSécurisé par Bearer tokenExemple de réponse
GET/api/survey-unit/${surveyUnitId}Récupère l'unité enquêtéeouijson {}
PUT/api/survey-unit/${surveyUnitId}Envoie l'unité enquêtéeouijson {}

Nomenclatures

TypeRouteDescriptionSécurisé par Bearer tokenExemple de réponse
GET/api/nomenclature/${nomenclatureId}Récupère la nomenclatureouijson {}