Open Hector47 opened 12 years ago
Merci pour tout ton boulot, je verrai demain pour ajouter tes modifs, sinon n'hésite pas à cloner et me faire des pull request
ce n'est qu'une ébauche :( il n'y a aucun code de fonctionnel mais c'est pour donner une idée de comment le faire.
Et puis il y a les deux fonctions "Magique" GetSleepStatus et UpdateServiceList à coder et à optimiser. La première est appelé à chaque connexion d'un lapin : elle va recuperer les heures où doit dormir le lapin fait les calcul et renvoi si il doit dormir ou pas. La deuxième doit mettre à jours la liste des services activé et est donc appeler par exemple à chaque changement de position des oreilles (par l'utilisateur ou par l'api) ou a chaque fois que les valeurs d'un service change.
Donc je ne sais pas si ça ne risque pas de surcharger le serveur :(
normalement tu as :
checkSleep(){}
dans ConnectionWelcome
qui gère (ou pas) si le lapin doit dormir, il y a surement une correction à faire car pour certain il semble y avoir un bug
Petite esquisse des modifications à faire pour ajouter la gestion des services (Météo, Trafic, Notification email, Qualité de l'air, Taïchi...)
0) Ajouter au model Nabaztag un champ par service ou une liste des services activé (Oreil Gauche et Droite étant au moins toujours activés) (je pense que le système de liste des services activé est plus simple a mettre en place, après je ne sais pas en ce qui concerne l'optimisation des requêtes vers la BD quand on veux ajouter ou supprimer un service...)
1) Reecrire l'envoi des services lors de la connexion
Pour le service awake/sleep on se base sur les horaire de levée et couchee du lapin donc soit on l'implemente dans la liste des service obligatoires (avec les oreilles) et on le reset (selon si il doit dormir ou pas à cette heure) à la connexion du lapin soit on l'oublie completemment et on check juste a la connextion si il doit etre endormi ou reveiller
(la premiere solution permetrer d'avoir accès rapide a l'etat du lapin depuis l'api)
(la deuxiemme solution est plus simple a faire mais ce serrai cool de savoir si le lapin dort depuis api (via le statut jabber)) (la deuxiemme solution est pour moi la meilleure car on evite de ce retouver avec l'info sur l'etat du nabaztag à deux endroits dans le serveur)
2) on ajout l'api de gestion des services (pour que les app externe puissent les configuer)
il est plus simple de garder cette api en get pour simplifier le travail des apps externe.
OU
3) on ajoute dans l'api une facon de recuperer les valeurs des services (recuperer les positions des oreilles, dernier etat (endormi, reveiller) ) avec seulement l'apikey du lapin
3 Bis) Ajouter les valeurs des services dans les api existantes comme /nabaztags et /nabaztags/:mac (je ne sais pas si le DAO les recupere automatiquement)
4) mettre à jour les api pour updater les services ()
5) Fin :)
Bon je pense que le plus dur à faire et optimiser sont les fonction MAGIE GetSleepStatus et UpdateServiceList Bien sur ce n'est que mon idée de comment faire et il doit y avoir d'autres beaucoup plus optimisée.
Julien, merci pour tout ton travail pour nos lapins :)