Aller au contenu principal
Was this helpful?

Organisation API

Organisations et adhésion

Répertorier les organisations accessibles, gérer les membres et lire l'état de l'administrateur de l'organisation

Cette page documente la surface de l'organisation non-administrateur. Il exclut l'organisation réservée aux administrateurs créer et supprimer des routes et appeler les points de terminaison d'adhésion qui se chevauchent qui existent dans deux contrôleurs.

JWT ou clé utilisateur APIRBAC et gardes d'organisationGestion des membresAperçu de suppression

Source

  • Contrôleur principal : backend-nestjs/src/organisations/organisations.controller.ts
  • Contrôleur administrateur de l'organisation : backend-nestjs/src/organisations/organisation-admin.controller.ts
  • DTO : backend-nestjs/src/dto/organisation.dto.ts, backend-nestjs/src/dto/organisation-user.dto.ts, backend-nestjs/src/organisations/dto/update-organisation-color.dto.ts

Authentification et autorisations

  • Tous les itinéraires sur cette page nécessitent une authentification.
  • Le contrôleur principal utilise JwtAuthGuard plus RbacAuthorizationGuard.
  • Une application supplémentaire au niveau de l’itinéraire utilise OrganisationOwnershipGuard, OrganisationAdminGuard et des décorateurs d’autorisations d’organisation.
  • Itinéraires réservés aux administrateurs exclus de cette page :
    • POST /api/organisations
    • DELETE /api/organisations/:id
    • POST /api/organisations/:id/admins
    • DELETE /api/organisations/:id/admins/:userId

Remarque importante sur la source :

  • POST /api/organisations/:id/users et DELETE /api/organisations/:id/users/:userId sont chacun définis deux fois, une fois dans organisations.controller.ts et de nouveau dans organisation-admin.controller.ts, avec des gardes et des formes de réponse différentes.

Référence du point de terminaison

Surface principale de l'organisation

MéthodeCheminObjectifDemande ou requêteAuthentificationSource
GET/api/organisationsRépertoriez les organisations accessibles à l’utilisateur actuel.AucunClé JWT ou utilisateur APIorganisations/organisations.controller.ts
GET/api/organisations/:idObtenez une organisation accessible.Chemin : idClé JWT ou utilisateur APIorganisations/organisations.controller.ts
PATCH/api/organisations/:idMettez à jour les champs du profil de l’organisation.Chemin : id, corps : champs de profilClé JWT ou utilisateur APIorganisations/organisations.controller.ts
POST/api/organisations/:id/usersAttribuez un utilisateur à l'organisation.Chemin : id, corps : userIdClé JWT ou utilisateur APIorganisations/organisations.controller.ts
DELETE/api/organisations/:id/users/:userIdSupprimer un utilisateur de l'organisation.Chemin : id,userIdClé JWT ou utilisateur APIorganisations/organisations.controller.ts
POST/api/organisations/:id/users/assignAttribuez un utilisateur avec un rôle explicite.Chemin : id, corps : userId,role,assignedByIdClé JWT ou utilisateur APIorganisations/organisations.controller.ts
GET/api/organisations/:id/users/listRépertoriez les utilisateurs et les rôles de l’organisation.Chemin : idClé JWT ou utilisateur APIorganisations/organisations.controller.ts
PATCH/api/organisations/:id/users/:userId/roleMettez à jour un rôle de membre.Chemin : id,userId, corps : roleClé JWT ou utilisateur APIorganisations/organisations.controller.ts
DELETE/api/organisations/:id/users/:userId/removeSupprimez un membre via le chemin de suppression alternatif.Chemin : id,userIdClé JWT ou utilisateur APIorganisations/organisations.controller.ts
GET/api/organisations/:id/deletion-previewAperçu de l’impact de la suppression en cascade.Chemin : idClé JWT ou utilisateur APIorganisations/organisations.controller.ts
DELETE/api/organisations/:id/cascadeSupprimez en cascade les données appartenant à l’organisation.Chemin : idClé JWT ou utilisateur APIorganisations/organisations.controller.ts
PATCH/api/organisations/:id/colorMettre à jour la couleur de l’organisation.Chemin : id, corps : color,cascadeToResourceTypesClé JWT ou utilisateur APIorganisations/organisations.controller.ts

Surface d'assistance à l'administration de l'organisation

MéthodeCheminObjectifDemande ou requêteAuthentificationSource
GET/api/organisations/:id/adminsRépertoriez les administrateurs de l’organisation.Chemin : idClé JWT ou utilisateur APIorganisations/organisation-admin.controller.ts
POST/api/organisations/:id/usersAjoutez un utilisateur à l'organisation.Chemin : id, corps : userIdClé JWT ou utilisateur APIorganisations/organisation-admin.controller.ts
DELETE/api/organisations/:id/users/:userIdSupprimer un utilisateur de l'organisation.Chemin : id,userIdClé JWT ou utilisateur APIorganisations/organisation-admin.controller.ts
GET/api/organisations/:id/usersRépertoriez les utilisateurs de l’organisation.Chemin : idClé JWT ou utilisateur APIorganisations/organisation-admin.controller.ts
GET/api/organisations/admin-rolesRépertorie les organisations dont l'utilisateur actuel est un administrateur.AucunClé JWT ou utilisateur APIorganisations/organisation-admin.controller.ts
GET/api/organisations/:id/admin-statusTestez si l’utilisateur actuel est un administrateur de l’organisation.Chemin : idClé JWT ou utilisateur APIorganisations/organisation-admin.controller.ts

Demander des formes

Profil de l'organisation

CreateOrganisationDto et UpdateOrganisationDto dans backend-nestjs/src/dto/organisation.dto.ts

  • name : requis à la création
  • description : chaîne facultative
  • address : chaîne facultative
  • phone : chaîne facultative
  • email : e-mail facultatif
  • isActive : booléen facultatif de mise à jour uniquement

Adhésion

  • AssignUserDto.userId : numéro requis
  • AssignOrganisationUserDto.userId : numéro requis
  • AssignOrganisationUserDto.role : obligatoire OrganisationRoleType
  • AssignOrganisationUserDto.assignedById : numéro facultatif
  • UpdateOrganisationUserRoleDto.role : obligatoire OrganisationRoleType

Couleur

UpdateOrganisationColorDto

  • color : couleur hexadécimale requise, #rgb ou #rrggbb
  • cascadeToResourceTypes : booléen facultatif

Exemples d'appels

Répertorier les organisations accessibles

curl "$PRIMECAL_API/api/organisations" \
-H "Authorization: Bearer $TOKEN"

Attribuer un rôle à un utilisateur

curl -X POST "$PRIMECAL_API/api/organisations/12/users/assign" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"userId": 42,
"role": "ADMIN"
}'

Mettre à jour la couleur de l'organisation

curl -X PATCH "$PRIMECAL_API/api/organisations/12/color" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"color": "#14b8a6",
"cascadeToResourceTypes": true
}'

Notes de réponse et de comportement

  • GET /api/organisations renvoie uniquement les organisations auxquelles l'utilisateur actuel peut accéder.
  • Certaines routes du contrôleur d'administration de l'organisation renvoient des enveloppes { message, data } au lieu d'entités simples.
  • GET /api/organisations/:id/deletion-preview doit être utilisé avant les opérations destructives en cascade.

Meilleures pratiques

  • Traitez les itinéraires :id/users en double comme des surfaces qui se chevauchent et standardisez votre client sur une seule famille de chemins.
  • Utilisez GET /api/organisations/:id/users/list ou GET /api/organisations/:id/users de manière cohérente au lieu de mélanger les deux dans le même client.
  • Prévisualisez toujours la suppression en cascade avant d’appeler DELETE /api/organisations/:id/cascade.
  • Préférez les mises à jour d'adhésion spécifiques aux rôles avec /users/assign et /users/:userId/role au lieu des workflows de suppression et de lecture.