External adapter to import membership from helloasso to paheko
src | ||
.env.example | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
HelloAsso Paheko Adapter
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)
- On va regarder si l'id de la réponse est trouvé dans une écriture comptable, si oui on ignore
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,