Skip to content

Latest commit

 

History

History

data_layer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Data-Layer

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

Organisation du dossier

  • tests : Les test pgTAP.
  • sqitch : Les migrations sqitch
  • postgres/fakes : des fausses données utilisées pour développer/tester readme
  • postgres/content : le contenu exporté par le business 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

Mode d'emploi

Pré-requis

  • psql (on peut l'installer sur Mac avec brew : brew install postgresql)
  • docker

Lancer les tests en local

Postgres

Installer pg_prove (nécessite perl).

sudo cpan App::cpanminus
sudo cpan TAP::Parser::SourceHandler::pgTAP

Puis utiliser sh scripts/run_tests.sh

API

Les tests http dans peuvent-être lancés soit :

Ajouter une nouvelle fonctionnalité

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

Créer un projet sur Supabase

Après la création du projet

  • Mettre à jour Site URL dans auth/settings avec l'url du front.
  • Mettre à jour les mails authentication avec les traductions depuis auth/templates.
  • Désactiver la confirmation des mails Enable email confirmations depuis auth/settings.
  • Augmenter le nombre Max rows à 6000 depuis settings/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
  • 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