Le Data-Layer est responsable des lectures/écritures en base, c'est-à-dire de :
- stocker des données
- provenant du business (referentiel, scores calculés...)
- provenant du client (toutes valeurs saisies dans l'application)
- notifier d'un changement en base
- au business (ex : nouveau statut d'une action, qui déclenchera le moteur de notation pour mettre à jour les scores).
- au client (ex : un nouveau score a été calculé, donc les jauges doivent être mises à jour dynamiquement).
- fournir au client des vues prêtes à consommer
tests
: Les test pgTAP.sqitch
: Les migrations sqitchpostgres/fakes
: des fausses données utilisées pour développer/tester readmepostgres/content
: le contenu exporté par lebusiness
au format json.postgres/verify
: Permet de verifier que des features existent dans le cadre du chargement du docker compose de développement.requests
: des requêtes http pour tester l'API readme
- psql (on peut l'installer sur Mac avec brew :
brew install postgresql
) - docker
Installer pg_prove (nécessite perl).
sudo cpan App::cpanminus
sudo cpan TAP::Parser::SourceHandler::pgTAP
Puis utiliser sh scripts/run_tests.sh
Les tests http dans peuvent-être lancés soit :
- directement depuis IntelliJ/Webstorm
- depuis VSCode avec le plugin httpYac
- à partir d'un terminal avec restcli, qui est utilisé aussi dans le docker compose de développement.
Installer sqitch ou utiliser docker compose
.
Avec sqitch en local :
sqitch add domaine/fonctionnalite --note 'Une nouvelle fonctionnalité.'
Avec docker compose :
docker compose run --no-deps sqitch add domaine/fonctionnalite --note 'Une nouvelle fonctionnalité.'
Le résultat devrait être :
Created deploy/domaine/fonctionnalite.sql
Created revert/domaine/fonctionnalite.sql
Created verify/domaine/fonctionnalite.sql
Added "domaine/fonctionnalite" to sqitch.plan
Après la création du projet
- Mettre à jour
Site URL
dansauth/settings
avec l'url du front. - Mettre à jour les mails
authentication
avec les traductions depuisauth/templates
. - Désactiver la confirmation des mails
Enable email confirmations
depuisauth/settings
. - Augmenter le nombre
Max rows
à6000
depuissettings/api
, le business ayant besoin de récupérer toutes les actions en une seule requête et le client de récupérer tous les noms des collectivités.
Pour utiliser ce nouveau projet avec les autres services il faut mettre à jour les variables d'environnement :
- du client avec
- l'url du projet
https://{ID}.supabase.co
- la clé d'API publique anon
- l'url du projet
- du business avec
- l'url http du projet
https://{ID}.supabase.co
- le websocket
wss://{ID}.supabase.co
- la clé privée service_role
- l'url postgres
postgresql://postgres:{PASSWORD}@db.{ID}.supabase.co:5432/postgres
- l'url http du projet