Développement connecteur Total Direct Energie Pro

Bonjour,

Je développe un connecteur Total Direct Energie Pro pour les besoins d’une collectivité.
Le dépôt est accessible ici : https://gitlab.com/sde03/cozy-konnectors/total-direct-energie

Je l’ai testé en standalone. A-t-on la possibilité de l’installer sur un compte mycozy.cloud pour le tester ?

Il me reste à développer le support des espaces client multi-comptes. C’est un espace client avec une vue sur d’autres espaces client.

Auriez-vous la possibilité de relire mon code ?

Quelle est la marche à suivre en vue de l’intégration à votre Store ?

Cordialement,

Gaël

Bonsoir @gducerf,

Bienvenue à bord :smile:

Et merci pour ce nouveau connecteur !

J’ai prévenu notre équipe technique qui va s’en occuper rapidement.

Pour l’intégration à la liste des connecteurs disponibles dans Cozy, il sera nécessaire de déplacer le dépôt dans l’organisation https://github.com/konnectors/ sur Github. Cela nous permettra d’avoir la main dessus pour pouvoir le mettre à jour en cas de souci. Mes collègues vont vous donner plus de détails sur la procédure.

Bonsoir @gducerf, je n’ai rien à redire sur ce connecteur pour le moment :+1: . On devra peut-être le renommer. En attendant, il est prêt à être installé sur ton cozy ou il est possible aussi de l’installer sur un cozy de test pour que tu puisses le tester. Qu’est-ce que tu préfères ?

OK merci. Je vais terminer le connecteur pour la prise en charge des espaces multicomptes. Je te préviens quand c’est fait et on testera sur mon compte à ce moment là.

Question : j’ai eu un autre fournisseur au téléphone qui m’a donné tout un tas de consignes à respecter notamment pour le premier téléchargement des factures (qui peuvent être très nombreuses sur des comptes pro). Il s’agit de télécharger les factures sur certaines plages horaires, de respecter un délai entre 2 requêtes REST, d’un nombre maximal de téléchargements parallèle, etc. Autant, pour les 2 dernières contraintes je peux le transcrire dans mon connecteur, autant pour les plages horaires c’est à vous de faire ce qu’il faut, est-ce que c’est possible pour vous ?

Salut
Concernant les plages horaires, oui c’est tout à fait possible.

Lors de la création d’un compte pour un connecteur dans le cozy, un trigger est créé. Il sera fixe ensuite.
Par défault, il est aléatoire, hebdomadaire, et choisi entre 0h et 5h (GMT).

Si tu veux adapter la plage horaire, tu peux définir dans le manifest un attribut time_interval.

"time_interval": [0,10],

Cela donnera des triggers, entre 00h00 et 9h59 inclus (GMT).
Qques infos ici : https://github.com/cozy/cozy-apps-registry/blob/ff0237fc4c8ad02b60ee5f068eeaf81e73da8cc8/README.md#L246

Il est plus compliqué d’éditer ensuite les triggers, donc autant définir la plage souhaitée avant la publication.

1 Like

Bonjour,

Je reviens à la charge avec quelques questions :

  • Dans le cas d’un espace multicomptes, que dois-je mettre en paramètre de saveBills concernant les attributs sourceAccount et sourceAccountIdentifier ? L’utilité de sourceAccount et sourceAccountIdentifier m’échappe. Il est conseillé de définir sourceAccount à this.accountId (je ne sais pas à quoi ça correspond non plus car il vaut default_account_id en mode standalone) mais à quoi cela sert-il ? Je me disais qu’il fallait peut-être utiliser le n° client pour un de ces 2 attributs ?

  • Est-il possible d’intercepter les erreurs 401 pour relancer une tentative de connexion ?

  • Est-il possible d’intercepter n’importe quelle erreur de connexion pour tenter de relancer la requête en erreur ?

  • Je ne suis pas à l’aise ni avec le langage ni avec ses bibliothèques, est-il possible de faire une pause dans le déroulement du script ? En d’autres termes, y a-t-il un équivalent de la fonction sleep(uint nb_sec) qui existe dans certains langages ?

C’est tout pour l’instant !

Bonjour,

Je pose peut-être trop de questions à la fois ?!?
Ne prenez pas peur, je n’attends pas toutes les réponses à la fois !

Non, tu ne pose pas trop de questions du tout. C’est nous qui somme un peu longs à répondre :slight_smile:

  • sourceAccount correspond à l’id de compte cozy associé à ton compte. Il permet au connecteur de différentier deux fichiers identiques mais issus de deux comptes différents. Tu peux donc mettre this.accountId sans trop te poser de question.
  • sourceAccountIdentifier: correspond à un label unique associé à ton compte direct energie. En général, c’est tout simplement le login.

Si tu veux te simplifier la vie sur ce sujet, appelle this.saveBills où this est l’instance de BaseKonnector accessible comme this de la fonction start. Elle saura alimenter automatiquement ces informations à partir du contexte.

Oui, les erreurs 401 émettent une exception. Tu peux l’intercepter et faire ce que tu veux. Le module bluebird-retry peut t’aider à gérer la relance des requêtes en erreur.

Oui :

const sleep = require('util').promisify(global.setTimeout)
await sleep(1000) // attendre 1s

Bon courage :slight_smile:

1 Like

Merci pour les réponses.

OK, sourceAccount est lié au compte cozy, pas au compte direct énergie, c’est cela que je ne comprenais pas.

Concernant sourceAccountIdentifier, quand je suis sur un espace multicompte (qui permet d’avoir accès à plusieurs comptes client à partir d’un seul login), faut-il que je mette le numéro de client pour différencier les comptes ? Ou faut-il quelque-chose de plus verbeux avec par exemple numero_client-libelle_client ?

Sinon encore une autre question, pour un autre fournisseur qui souhaite que je fasse un pause d’une seconde entre chaque requête REST. @doubleface, tu viens de me donner la solution, parfait. Par contre concernant le téléchargement, il m’autorise à télécharger jusqu’à 5 factures à la fois cependant il souhaite que ces 5 téléchargement soient suivi d’une pause d’une seconde avant d’en lancer 5 autres. Est-ce que ça te semble réalisable ? Dans un premier temps, je peux faire les téléchargements un par un suivi d’une pause d’une seconde, c’est ce que je fais actuellement (mais pas en cozy). Mais j’aimerais pouvoir le faire car quand il s’agit de faire le téléchargement initial de 4 ans d’historique, ça nous fait des milliers de factures qui font parfois plusieurs dizaines voire plusieurs centaines de pages, ça prend un temps infini.

Un autre problème avec l’espace client direct énergie, c’est que les dates de facture et les montants indiqués dans l’espace client sont approximatifs et peuvent même changer dans le temps ! La date de la facture correspond plutôt à la date de dépose sur l’espace client (mais ça n’a pas toujours été le cas, je les ai prévenu, je leur ai rappelé mais ça n’a pas l’air de les chagriner) et les montants ne sont pas toujours justes et les montants peuvent changer dans le temps (cependant ce n’est pas parce qu’un montant faux change qu’il devient juste). Ce n’est donc pas terrible pour générer un nom de fichier unique avec la date et le montant dedans. N’y a-t-il pas le risque de télécharger les factures en doublon ?