Considéré comme possible
(Android) Protocole d'échange de favoris
Pour échanger les favoris entre le main site et le périphérique embarqué, partons d'un principe simple :
Th1. Le “main” n'a pas à savoir ce qu'il existe en dehors de lui.
Propriétés :
– (prop A) Si un LSV est marqué comme favori sur un périphérique embarqué, c'est au petit de prévenir le gros.
– (prop B) Si un LSV est dé-marqué comme favori sur un périphérique embarqué, c'est au petit de prévenir le gros.
Th2. Le main ne stockera pas les ajouts/suppressions de favoris.
Propriétés !
– (prop C) Pour synchroniser, le petit doit (step 1) réaliser les MaJ en attente qu'il a en stock et pas transmises au main (step 2) télécharger le pack de LSV favoris (step 3) écraser sa base (step 4) populer sa base.
Th3. Les infos ne circulent pas lorsque le net est cassé, que spontex est down ou plein de raisons qu'on ne maitrise pas – (prop D) C'est au petit de se démerder avec ses LSV en attente de “ouiiii, il l'a ajouté je te jure”
Protocole d'échanges
Pour marquer un favori :
/android/favourites/new/(LSV_ID)/
OK : ok
NOK : pas ok
Pour supprimer un favori :
/android/favourites/del/(LSV_ID)/
OK : ok
NOK : pas ok
Pour tester un favori : (tu veux ?)
/android/favourites/is/(LSV_ID)/
OUI : c'est un LSV favori
NON : c'est pas un LSV favori
OK : là, il se fout de ta gueule
NOK : “je sais pas, toi pas parler comme il faut”
Pour télécharger les favoris :
/android/favourites/
[] : a pas
[12, 45, 31232, 32] : liste de codes LSV favoris…
Nb : tu n'as pas moyen de savoir (sauf à tester avant mais c'est inutile) si un LSV était déjà favori… ni s'il a déjà été supprimé…
Feature : who cares ! (je ne vois pas en quoi savior que c'est un doublon changera le comportement de ta synchro)
Je suis ok. Par contre il me faudra un /android/favourites/list qui va me renvoyer comme le top… les lsv favoris, j'ai besoin des deux.
Pour th3, l'algo
Récupérer la liste des id
si l'id distant est dans la liste
afficher une icone "sync_ok"
si l'id distant n'est pas dans la liste
afficher un message demandant d'appuyer sur le bouton 'sync depuis le distant'
si l'id local n'est pas sur le distant
afficher une icone "to_sync"
#
Si push on sync_local_to_distant
si des modifs locales
envoyer locales vers distant
#
Si push on sync_from_distant
ajouter lsv locaux et ne pas touches aux modifs locales
Comme ça, si y'a des erreurs de synchro on pourra voir de suite qui a été synchro.
Rectificatif pour :
/android/favourites/is/(LSV_ID)/
OUI : c’est un LSV favori
NON : c’est pas un LSV favori
OK : là, il se fout de ta gueule
NOK : LSV introuvable, ...
Alors les “introuvables” te retourneront une 404.
Pour le reste, tu auras des OUI/NON… sauf la liste qui te retourne un JSON avec la liste des numéros de LSV favoris.
NB : pas de distinction de langue : un LSV est favori dans toutes les langues….
Merci de vous enregistrer pour poster un commentaire.