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
JwtAuthGuardplusRbacAuthorizationGuard. - Une application supplémentaire au niveau de l’itinéraire utilise
OrganisationOwnershipGuard,OrganisationAdminGuardet des décorateurs d’autorisations d’organisation. - Itinéraires réservés aux administrateurs exclus de cette page :
POST /api/organisationsDELETE /api/organisations/:idPOST /api/organisations/:id/adminsDELETE /api/organisations/:id/admins/:userId
Remarque importante sur la source :
POST /api/organisations/:id/usersetDELETE /api/organisations/:id/users/:userIdsont chacun définis deux fois, une fois dansorganisations.controller.tset de nouveau dansorganisation-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éthode | Chemin | Objectif | Demande ou requête | Authentification | Source |
|---|---|---|---|---|---|
GET | /api/organisations | Répertoriez les organisations accessibles à l’utilisateur actuel. | Aucun | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
GET | /api/organisations/:id | Obtenez une organisation accessible. | Chemin : id | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
PATCH | /api/organisations/:id | Mettez à jour les champs du profil de l’organisation. | Chemin : id, corps : champs de profil | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
POST | /api/organisations/:id/users | Attribuez un utilisateur à l'organisation. | Chemin : id, corps : userId | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
DELETE | /api/organisations/:id/users/:userId | Supprimer un utilisateur de l'organisation. | Chemin : id,userId | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
POST | /api/organisations/:id/users/assign | Attribuez un utilisateur avec un rôle explicite. | Chemin : id, corps : userId,role,assignedById | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
GET | /api/organisations/:id/users/list | Répertoriez les utilisateurs et les rôles de l’organisation. | Chemin : id | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
PATCH | /api/organisations/:id/users/:userId/role | Mettez à jour un rôle de membre. | Chemin : id,userId, corps : role | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
DELETE | /api/organisations/:id/users/:userId/remove | Supprimez un membre via le chemin de suppression alternatif. | Chemin : id,userId | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
GET | /api/organisations/:id/deletion-preview | Aperçu de l’impact de la suppression en cascade. | Chemin : id | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
DELETE | /api/organisations/:id/cascade | Supprimez en cascade les données appartenant à l’organisation. | Chemin : id | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
PATCH | /api/organisations/:id/color | Mettre à jour la couleur de l’organisation. | Chemin : id, corps : color,cascadeToResourceTypes | Clé JWT ou utilisateur API | organisations/organisations.controller.ts |
Surface d'assistance à l'administration de l'organisation
| Méthode | Chemin | Objectif | Demande ou requête | Authentification | Source |
|---|---|---|---|---|---|
GET | /api/organisations/:id/admins | Répertoriez les administrateurs de l’organisation. | Chemin : id | Clé JWT ou utilisateur API | organisations/organisation-admin.controller.ts |
POST | /api/organisations/:id/users | Ajoutez un utilisateur à l'organisation. | Chemin : id, corps : userId | Clé JWT ou utilisateur API | organisations/organisation-admin.controller.ts |
DELETE | /api/organisations/:id/users/:userId | Supprimer un utilisateur de l'organisation. | Chemin : id,userId | Clé JWT ou utilisateur API | organisations/organisation-admin.controller.ts |
GET | /api/organisations/:id/users | Répertoriez les utilisateurs de l’organisation. | Chemin : id | Clé JWT ou utilisateur API | organisations/organisation-admin.controller.ts |
GET | /api/organisations/admin-roles | Répertorie les organisations dont l'utilisateur actuel est un administrateur. | Aucun | Clé JWT ou utilisateur API | organisations/organisation-admin.controller.ts |
GET | /api/organisations/:id/admin-status | Testez si l’utilisateur actuel est un administrateur de l’organisation. | Chemin : id | Clé JWT ou utilisateur API | organisations/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éationdescription: chaîne facultativeaddress: chaîne facultativephone: chaîne facultativeemail: e-mail facultatifisActive: booléen facultatif de mise à jour uniquement
Adhésion
AssignUserDto.userId: numéro requisAssignOrganisationUserDto.userId: numéro requisAssignOrganisationUserDto.role: obligatoireOrganisationRoleTypeAssignOrganisationUserDto.assignedById: numéro facultatifUpdateOrganisationUserRoleDto.role: obligatoireOrganisationRoleType
Couleur
UpdateOrganisationColorDto
color: couleur hexadécimale requise,#rgbou#rrggbbcascadeToResourceTypes: 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/organisationsrenvoie 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-previewdoit être utilisé avant les opérations destructives en cascade.
Meilleures pratiques
- Traitez les itinéraires
:id/usersen double comme des surfaces qui se chevauchent et standardisez votre client sur une seule famille de chemins. - Utilisez
GET /api/organisations/:id/users/listouGET /api/organisations/:id/usersde 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/assignet/users/:userId/roleau lieu des workflows de suppression et de lecture.