Comment fonctionne l’envoi des données?

Edit me
Ah! Oui! Mais comment ca fonctionne?

Glossaire / Synonymes

  • dataset: ensemble des données pour une table (un varset)
  • row_data: une entrée dans le dataset, une fiche d’un dataset
  • message: lot de row_data pour UN dataset

Stockage et liaisons entre les row_data et les messages

Lors de l’envoi des données, l’application crée un message qui est un descriptif de l’envoi d’un dataset.

Attributs importants d’un message

clé a quoi ça sert?
id identifiant d’un message
date date de création (et envoi) du message
project le projet utilisé
userId identifiant de l’utilisateur de l’application
destination URL (ou numero de téléphone) du destinataire du message
message ce qui est réellement envoyé sur le réseau
datasetName nom du dataset rattaché à ce message
rowsIds liste des identifiants des row_data envoyés
backupRows JSON de toutes les données envoyées, utile pour éditer une fiche qui serait passée en erreur lors de l’envoi (par exemple, une modification du projet sur Epicraft qui serait incompatible avec la fiche saisie)
status success, pending, error, confirmed

Sécurité ?

  • Chaque message est chiffré avant d’être stocké de manière sécurisé dans l’application.
  • Ce stockage est indépendant entre chaque utilisateur.
  • Lorsqu’un message change d’état et passe à un état success, les informations de données sont supprimées de celui-ci (attributs message et backupRows)

Les différents états d’un message

Chaque message est définit par 3 à 4 statuts possibles suivant le type d’envoi utilisé.

statut sms internet remarque rapide
pending oui oui en cours d’envoi
error oui oui  
success oui oui  
confirmed oui non utilisé si un accusé de réception à été reçu

Success

XHR

Le serveur à répondu à la requête sous la forme d’un json:

{
  "success": true
}

ou

{
  "status": true
}

SMS

SMS Companion a bien été ouvert.

Pending

Lors de l’ouverture de la session de l’utilisateur, tous les messages en pending qui sont plus anciens que 10 minutes passent en error.

Error

Lorsqu’un message est en error, on observe:

  • les row_data associés à un dataset vont être réinjectés dans le récapitulatif des données à envoyer.
  • Le bouton d’envoi dans l’interface du récapitulatif est transformé en bouton de renvoi des données.
  • Le bouton de renvoi ne concernera que les row_data en error.
  • Les autres (nouveaux) pourront être envoyés par la suite.