Skip to content

Organisations And Services Domain

Definition

Le domaine couvre:

  • les etablissements dans public.organisations
  • les services dans public.services
  • leur relation N-N dans public.organisations_services

Le backend centralise:

  • les permissions par role
  • l'acces API key par scopes
  • la pagination
  • le nettoyage metier des rattachements profil

References:

  • back/src/organisations/organisations.controller.ts
  • back/src/organisations/organisations.service.ts

Regles d'acces

Endpointsuper-adminadministrateurAPI key
GET /enterprises/:enterpriseId/organisationsOuiOui, sur son entrepriseorganisations:read
POST /enterprises/:enterpriseId/organisationsOuiOui, sur son entrepriseorganisations:write
GET /enterprises/:enterpriseId/servicesOuiOui, sur son entrepriseservices:read
GET /organisations/:idOuiOui, sur son entrepriseorganisations:read
PATCH /organisations/:idOuiOui, sur son entrepriseorganisations:write
DELETE /organisations/:idOuiOui, sur son entrepriseorganisations:write
GET /organisations/:organisationId/servicesOuiOui, sur son entrepriseservices:read
POST /organisations/:organisationId/servicesOuiOui, sur son entrepriseservices:write
GET /organisations/:organisationId/services/:serviceIdOuiOui, sur son entrepriseservices:read
PATCH /organisations/:organisationId/services/:serviceIdOuiOui, sur son entrepriseservices:write
DELETE /organisations/:organisationId/services/:serviceIdOuiOui, sur son entrepriseservices:write

Regles metier

  • un service peut appartenir a un ou plusieurs etablissements
  • un service reste dans la base tant qu'il est rattache a au moins un etablissement
  • supprimer un etablissement:
    • supprime ses references profiles_organisations
    • supprime ses liaisons organisations_services
    • supprime uniquement les services devenus orphelins
    • nettoie les profiles_services invalides sans supprimer les utilisateurs
  • supprimer un service depuis un etablissement:
    • retire d'abord le lien organisations_services
    • supprime ensuite le service seulement s'il n'est rattache a aucun autre etablissement
    • nettoie les profiles_services invalides sans supprimer les utilisateurs

Pagination

Les endpoints listes acceptent:

  • page, defaut 1
  • pageSize, defaut 20, max 100

Endpoints concernes:

  • GET /enterprises/:enterpriseId/organisations
  • GET /enterprises/:enterpriseId/services
  • GET /organisations/:organisationId/services

Exemples

Creation d'un etablissement:

json
{
  "name": "Site A",
  "slug": "site-a",
  "address": "1 rue de Paris",
  "zip_code": "75001",
  "town": "Paris"
}

Creation d'un service dans le contexte d'un etablissement:

json
{
  "name": "Bloc",
  "slug": "bloc",
  "organisationIds": [11, 12]
}