Développement connecteur Planète OUI


#1

Bonjour,

Voici un connecteur que je viens de développer pour importer les facture Planète OUI :

Je l’ai testé avec succès sur mon compte mycozy.cloud.

  • Le listing et l’import des factures fonctionnent très bien.
    • Le rapprochement avec les débits bancaires est excellent.

Il me reste quelques points à creuser :

  • Les fichiers ont été importés dans un dossier “cozy-konnector-dev-root” du Drive.
  • Il est possible d’avoir plusieurs compteurs électriques différents sur un même compte utilisateur (ce qui est mon cas suite à un déménagement). Je souhaite trouver la meilleure façon de classer les factures.

Aussi, je confirme ce que disais @j0k, le développement de connecteurs est très simple. Bravo pour l’expérience développeur.

Pouvez-vous relire le konnector en vue de l’intégrer au Store ?

Jérôme


#2

Hello @GromNaN,

Bienvenue à bord et merci beaucoup :smile:

J’ai prévenu l’équipe technique qui va venir répondre à tes questions et relire ton code.

C’est une question intéressante, nous y réfléchissons justement car nous avons le cas avec d’autres connecteurs.


#3

Bonjour @GromNaN

Merci à toi pour ce connecteur, je te propose quelques remarques et ensuite on pourra lancer le process de publication.

Concernant ta première question :
Je suppose que utilises ton cozy et le mode ‘yarn dev’ pour lancer le connecteur, c’est pour cela que tu retrouves tes documents dans “cozy-konnector-dev-root”, ca ne sera pas le cas quand le connecteur sera packagé en béta/publié, le dossier sera le ‘name’ du connecteur déclaré dans le manifest.
Si tu ne connais pas le mode ‘yarn standalone’, il permet un lancement en local de ton poste, idéal pour le débug. https://docs.cozy.io/en/tutorials/konnector/#run-the-sample

Concernant ta deuxième question pour les doubles contrats.
La meilleur facon de faire (cela complexifie un peu le connecteur) est de gérer le multi contrat dans le connecteur, puis de créé un dossier par contrat avec le numéro par exemple, et appeler autant de fois saveBills avec un folderPath légérement différent.
Tu peux créer un dossier avec mkdirp dans la libs,
ex ici : https://github.com/konnectors/cozy-konnector-pajemploi/blob/master/src/payslip.js#L15
definition ici: https://github.com/konnectors/libs/blob/master/packages/cozy-konnector-libs/src/libs/mkdirp.js

-> Il reste l’identifier ‘books’ ligne 18, c’est l’identifiant qui doit matcher le mieux possible le virement/paiement de tes factures, tu peux en mettre plusieurs, c’est important pour la catégorisation bancaire. Ca peut etre ‘PLANETE OUI’, ‘PlaneteOui’, à toi de nous dire en regardant ton compte bancaire.
-> Tu peux améliorer le filename :

  1. Garde le séparateur tiret dans la date, utilise un _ (underscore) entre les différents groupes ${formatDate(doc.date, ‘YYYY-MM’)}_planete-oui.pdf
  2. En rajoutant le montant, ${formatDate(doc.date, ‘YYYY-MM’)}planete-oui${amount}€.pdf
  3. Si tu as à disposition un numéro de facture, tu peux le mettre en vendorRef de la bill et en fin de filename.

Toutes les infos sur le doctype bills : https://docs.cozy.io/en/cozy-doctypes/docs/io.cozy.bills/#bills-doctype

Peux-tu aussi vérifier le comportement de l’erreur LOGIN_FAILED.
Elle doit se lever si et uniquement si le mot de passe ou le login sont non valables
Utilise ton compte avec un faux password dans un premier temps, puis un compte avec un numéro/mail bidon

Dans l’attente de ton retour.

N’hésites pas à te créer un second cozy pour tes tests, sinon tu risques d’empiler des bills de tests sur ton bô cozy.

Lucas


#4

Bonjour,

Merci pour ta réponse détaillée.

J’ai appliqué les corrections suivantes :

  • Nommage du fichier en "YYY-MM_planete-oui_99.99€.pdf
  • Correction de l’identifiant de transaction, qui est “Oui Energy” sur mes relevés de banque. J’avais utilisé cette valeur pour le “vendor” des documents.
  • Chargement de tous les comptes séquentiellement. Je n’ai pas trouvé à quel endroit créer le répertoire.

J’ai aussi vérifié le comportement du login, l’erreur LOGIN_FAILED et bien déclenchée uniquement lorsque les identifiants sont incorrectes.

Jérôme


#5

Salut @GromNaN

Super, je te propose de commencer le packaging et en parallèle que je te guide pour mettre les factures des différents comptes dans différents dossiers.

Est ce que tu peux transférer le repo vers l’organisation https://github.com/konnectors/ ? Si ca ne fonctionne pas, envoi le vers mon profil : https://github.com/LucsT
https://help.github.com/en/articles/transferring-a-repository#transferring-a-repository-owned-by-your-personal-account

Dés que c’est fait, je te mets Collaborator avec des droits en écriture, et j’attaque le branchement des outils : travis, renovate, sentry …

De l’autre coté, je pense que c’est assez important de placer les factures de chaque compte dans un dossier différent. Car si tu te retrouves avec deux factures du même mois, et avec le même montant, une seule sera conservée, car avec un filename unique.

  1. tu peux importer mkdirp depuis la cozy-konnector-libs comme ca : https://github.com/konnectors/cozy-konnector-pajemploi/blob/master/src/payslip.js#L1
  2. Crée un dossier avec ‘await mkdir(path)’ et défini le path à l’aide de la variable du connecteur fields.folderPath et le ‘nom’ du compte, il doit être constant.
    ex ici : https://github.com/konnectors/edg/blob/693bb1ba380e2984324d898d8bab3a1fd16a7764/src/index.js#L15
  3. Pour chaque compte appel saveBills avec le path du sous dossier
    ex ici : https://github.com/konnectors/edg/blob/693bb1ba380e2984324d898d8bab3a1fd16a7764/src/index.js#L23

Si tu as des questions hésites pas.

Lucas


#6

Le connecteur se trouve maintenant sous l’organisation konnectors à l’url suivante :


#7

Le connecteur est maintenant disponible pour tous les utilisateurs \o/
Il propose la gestion du multi-contrat par défault

@GromNaN J’ai mis la stable sur ton cozy.

Merci


#8

Merci pour toute l’aide que vous m’avez apportée pour finir ce connecteur.
Il fonctionne très bien sur mon compte.