External adapter to import membership from helloasso to paheko
Find a file
Matthieu Bessat 40c41fd930 feat(config): proxy
Make HTTP client proxy configurable for both paheko and helloasso
2023-12-30 23:48:23 +01:00
src feat(config): proxy 2023-12-30 23:48:23 +01:00
.env.example initial commit 2023-11-03 18:44:11 +01:00
.gitignore feat: add membership basic support 2023-11-09 09:14:14 +01:00
Cargo.lock feat(paheko): create user 2023-12-26 16:09:49 +01:00
Cargo.toml feat(paheko): create user 2023-12-26 16:09:49 +01:00
README.md feat(paheko): create user 2023-12-26 16:09:49 +01:00
TODO.md feat(config): proxy 2023-12-30 23:48:23 +01:00

HelloAsso Paheko Adapter

HelloAsso <-> Paheko

The goal is to provide a way for organizations:

  • to import helloasso membership information and members into paheko

And with some specifics features:

  • manage subscriptions and activities
  • implement helloasso custom fields mapping to paheko custom fields
  • avoid duplication

Written in Rust.

Getting started

Create a .env file from .env.example and fill in some secrets.

Run the program dotenv cargo run

fonctionnements

  • On va déjà récupérer la liste des utilisateurs en mode "summary" UserSummary` cad avec juste l'id, l'email, le prénom et le nom.
  • Ensuite on va récupérer la liste des transactions avec helloasso pour cette période comptable
    • ce qui compte c'est d'avoir la référence comptable
    • on peut faire une req sql qui filtre sur les id ou alors sur un compte
    • using accounting/years/{ID_YEAR}/account/journal (GET)
    • ou alors req SQL
  • On va créer une liste de réponse helloasso à traiter en filtrant les "réponses" d'helloasso. Pour chaque réponse, si l'id helloasso de cette réponse est trouvé dans la liste récupéré avant sur Paheko, alors on l'ignore. Sinon on garde
  • Pour chaque réponse à traiter
    • On va regarder si l'id de la réponse est trouvé dans une écriture comptable, si oui on ignore
      • cela veut dire que la personne est déjà inscrite pour ajd
    • On va regarder si l'email est déjà présent dans la liste des adhérents ou ancien adhérents (à N-1)
      • Si non, on créé l'utilisateur
      • Si oui, on ne créé pas d'utilisateur, on récupère l'id
    • On va créer une activité pour cet utilisateur
    • On va créer une écriture comptable, le numéro de la pièce comptable étant "HA/{ID_ANSWER}" (à la base je voulais le faire en JSON pour plus de détails, mais c'est trop gros)

PB: l'API permet d'importer des activités, mais pas de lier une écriture comptable

ya une table acc_transactions_users qui permet de lier une transaction avec une activité d'un utilisateur

références helloasso

le order.id et le answer.id que retourne l'API d'helloasso sont en fait les mêmes,