Dev Module Itinéraire


#21

Hello,

Je me suis donné le temps de faire un test ce week-end, Voici le retour :

Dans un premier temps j’ai modifié ton code pour avoir un affichage plus simple des résultats ^^ :
J’ai rajouté le fait de notifier l’utilisateur d’un message :
origin —> destinations :::
"En partant [mode] à [heureDep] tu arriveras à [heureArr]

Et
j’ai créé une varable sans le token pour les logs et eviter d’avoir toujours à le supprimer pour partager les logs :slight_smile:
Je partage le code à la fin du post :slight_smile:

Concernant les vrais tests :

Voici le premier script avec mes coordonnées (please les fans ne me spammez pas :joy::joy:)

var options = {
    origin : "17 rue de l'aérostation maritime 78210 Saint Cyr L'école" ,
    destination : '23 Place Wicklow Montigny-Le-Bretonneux 78180',
    mode : 'car'
};
gladys.modules.navitia.exec(options);

Ça marche et c’est cohérent ! Mais si je rajoute le coverage ‘sncf’ ca plante a nouveau !

Pour le test des modes sans ligne de coverage :
‘bus’ : ça plante
‘car’ : fonctionne
‘bike’ : ça fonctionne
‘ridesharing’ : ca plante
‘walking’ : ca fonctionne

Voila les screens de réponse de gladys sur Telegram (Il est pas beau ce nouveau logo :heart_eyes::heart_eyes::heart_eyes:)

Avec coverage : ‘sncf’ :
Ça plante tout le temps ^^
Du coup je ne comprends pas trop ce que c’est censé faire (j’avoue je ne suis pas aller voir toute a doc de l’API).

Voila pour mes tests sur Paris, mais du coup je n’arrive pas à tester le coté transport en commun, Donc si tu as une manière de me permettre de le tester je me referrais une session de tests.

A noter une chose, j’ai testé en plus en donnant l’adresse dans tous les sens, et ça fonctionne aussi (bien appréciable) : Ici le screenshots des tests :

Et en plus Gladys prend du plaisir à rendre service :wink: !

Le code modifié pour avoir une notification et pas de TOKEN dans les logs :

A partir de la ligne 49 du fichier /lb/exec.js remplacer tout par :
.then((destination) => {

		console.log('origin = '+origin)
		console.log('destination = '+destination)

		// Vérification de l'utilisation de coverage
		var urlSansToken =  'https://TOKEN@api.navitia.io/v1/journeys?from='+origin+'&to='+destination+'&first_section_mode[]='+options.mode
		var url = 'https://'+shared.api+'@api.navitia.io/v1/journeys?from='+origin+'&to='+destination+'&first_section_mode[]='+options.mode

		if (options.coverage) {

			url = 'https://'+shared.api+'@api.navitia.io/v1/coverage/'+options.coverage+'/journeys?from='+origin+'&to='+destination+'&first_section_mode[]='+options.mode
			urlSansToken = 'https://TOKEN@api.navitia.io/v1/coverage/'+options.coverage+'/journeys?from='+origin+'&to='+destination+'&first_section_mode[]='+options.mode
		}

		console.log(urlSansToken);

		// Requête auprès de l'API Navitia

		request(url, function(err, response, body) {
			result = JSON.parse(body);
			console.log(result);
			// Affichage du départ et de l'arrivée
			var depart = result.journeys[0].departure_date_time.split("T")[1];
			var arrivee = result.journeys[0].arrival_date_time.split("T")[1];
			depart = depart.slice(0,2) + ":" + depart.slice(2,4) + ":" + depart.slice(4,6); 
			arrivee = arrivee.slice(0,2) + ":" + arrivee.slice(2,4) + ":" + arrivee.slice(4,6); 
			console.log('depart = '+ depart);
		   	console.log('arrive = '+ arrivee);
			
			gladys.notification.create({ user: 1, title: ' ', text: options.origin + "--->" + options.destination + "::: \n  En partant [" + options.mode + "] à " + depart + ", tu arriveras à " + arrivee , icon: 'fa fa-home', iconColor: 'bg-light-blue'});
			});
		})
	})
}

#22

Aha joli, ça rend tellement bien avec le nouveau logo :heart_eyes:

ça serait cool de publier le module sur le store!


#23

Bonjours,

Je réponds enfin à vos messages :hugs: (manque de temps)

Donc commençons,

Quand j’ai essayé, cela a fonctionné, mais tout dépend si des trains sont disponibles, et surtout si il y a une gare à proximité :sweat_smile:.

Je vais faire en sorte que le module ne plante pas si les il n’y a pas de trains. Mais plutôt qu’il refasse une requête sans le coverage sncf.

Bus n’existe pas, il faut utiliser la traduction anglaise comme tu l’a effectué après.

J’y est réfléchis, je travaillerais dessus quand j’en aurais le temps.

Thank :wink:, je l’implémente immédiatement dans le code.
Je me suis permis d’enlever la ligne 70 : console.log(result), car je ne voyais pas trop d’intérêt d’afficher la réponse de Navitia dans les logs (j’aime quand c’est propre dans les logs :yum:).

Encore merci @Jojo pour ce test qui me permet de voir les différents problèmes présents sur le module.

Pour répondre aussi à @pierre-gilles (comme ça pas de jaloux)

Du coup, j’attends de corriger les bugs et après je le publierais … surement.


#24

Bonjour,

J’ai un petit problème que je n’arrive pas à résoudre.
Dans la configuration du module :

Je souhaiterais ajouter une fonction qui permet de paramétrer une fonction Auto Wake Up d’une manière précise.

Comme vous pouvez le constater actuellement, je n’arrive même pas à afficher une réponse de Navitia.
Je partage le code si cela peux vous aider :

<!DOCTYPE html>
<html>
<body> 

<h1>A Web Page</h1>
<p id="demo">A Paragraph</p>
<button type="button" onclick="myFunction()">Try it</button>

<script>
const theUrl = "https://MON_TOKEN@api.navitia.io/v1/journeys? 
//                            /\   
// J'ai mis le bon token ici   |  😊
from=2.3083896;48.8660048&to=2.301053;48.881376&first_section_mode[]=car"

var http = new XMLHttpRequest();
http.open( "GET", theUrl); // false for synchronous request
http.send();
http.onload = () => document.getElementById("demo").innerHTML = http.responseText;
</script>

</body>
</html>

Merci d’avance pour votre aide :wink:


#25

Du coup, personnes ne sais ? :thinking:


#26

Alors j’ai fais un test avec mon token de ton url, et j’obtiens bien la réponse attendue.
A priori, je dirais un pb de token donc.
Il semble qu’il faille le passer dans l’entête, éventuellement encodé en base64.
A tester !