Développement connecteur Tag&Pass


#1

Bonjour à tous,

Je viens de rejoindre la communauté Cozy et je trouve le concept de connecteurs excellent !

Du coup, hier j’ai développé mon premier connecteur pour récupérer les factures PDF du service en ligne Tag&Pass, pour le réseau de transport en commun de Grenoble (géré par la Semitag/SMTC).

Je l’ai testé avec mon compte en mode standalone, ça fonctionne bien, tous les PDFs sont téléchargés.
J’ai suivi au mieux la documentation disponible mais il reste surement des choses à corriger.
Typiquement, j’ai normalement déclaré les metadata suffisantes pour gérer la liaison des factures avec les intitulés bancaires mais je ne peux pas le tester en local.
D’ailleurs la documentation n’est pas très explicite à ce sujet, mais puis-je tester mon connecteur directeur avec mon instance personnelle sur cozy.io ?

Le code est sur GitHub : https://github.com/rclement/cozy-konnector-tagandpass
Site de Tag&Pass : https://www.tag.fr/99-tag-and-pass.htm

Comment procéder pour la suite ?

Merci,
A bientôt !


#2

Bonjour @rmnclmnt,

Bienvenue à bord :smile:

Je suis heureux de voir que les liens forts qu’entretient Cozy avec la région grenobloise perdurent.

Pour la suite, nous allons relire le code de ton connecteur et si tout est bon, le publier rapidement.

Merci beaucoup !


#3

Bonjour @Clochix,

Merci pour le rapide retour !

Juste pour info j’ai testé le connecteur avec yarn dev sur mon instance *.mycozy.cloud :

  • Les factures sont bien importés dans Cozy Drive
  • Le dossier d’import est /cozy-konnector-dev-root et les factures sont directement à l’intérieur
  • Re-lancer yarn dev détecte bien les factures existantes et n’importe pas de doublons

Bon dimanche !


#4

Super ! Je voulais moi-même le faire mais je suis content que quelqu’un d’autre s’en charge :smiley:. J’ai hâte de pouvoir l’essayer.


#5

Salut !

Voici mes retours sur ton code :

https://github.com/rclement/cozy-konnector-tagandpass/blob/eb5281a3239b2cda6cb8b6e4a648aa8b40e8fc97/src/index.js#L64-L73 ici, à la place de throw new Error('LOGIN_FAILED') tu peux utiliser errors de cozy-konnector-libs qui regroupe toutes les erreurs que nous utilisons pour les connecteurs (LOGIN_FAILED, VENDOR_DOWN…) :

const {
  BaseKonnector,
  requestFactory,
  saveBills,
  errors, // <---
  log
} = require('cozy-konnector-libs')

Tu peux ensuite faire :

throw new Error(errors.LOGIN_FAILED)

Ensuite, à part le nom du fichier à changer (comme pour Thomann), tout me semble bon.
Encore une fois, nous attendons ton retour, et n’hésite surtout pas si tu as des questions !


#6

@Xn1a Merci pour la re-lecture !

En effet, je ne sais pas pourquoi je n’ai pas utilisé l’enum errors. C’est corrigé.
De même pour le filename, j’ai fixé le format des factures avec les nouvelles conventions.

Bonne soirée,
A bientôt !