Contexte du compte et membres
Objectif : sélectionner l’étendue du compte et inspecter l’adhésion au compte avant les opérations d’identification ou de fournisseur.
Flux d’interface utilisateur
- L’interface utilisateur appelle
GET /api/accountspour répertorier les comptes accessibles. - L’utilisateur sélectionne le compte actif.
- L’interface utilisateur conserve le contexte du compte via
POST /api/account-views/switch. - L’interface utilisateur charge
GET /api/accounts/:account_id. - L’interface utilisateur charge
GET /api/accounts/:account_id/members. - Le propriétaire peut créer un compte enfant avec
POST /api/accounts. - Le propriétaire peut mettre à jour les valeurs d’affichage du compte avec
PATCH /api/accounts/:account_id. - Le propriétaire peut ajouter/supprimer des membres avec
/api/accounts/:account_id/members*. - L’interface utilisateur stocke
account_iddans l’état de l’itinéraire et préfixe tous les appels ultérieurs liés au compte.
Flux de bibliothèque client
const accounts = await api.accounts.list();
const active = selectAccount(accounts.data);
const account = await api.accounts.get(active.id);
const members = await api.members.list(active.id);
Flux HTTP/curl
API_BASE_URL="https://api.inbox-manager.com"
curl -sS "${API_BASE_URL}/api/accounts" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/account-views/switch" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data "{\"account_id\":\"${ACCOUNT_ID}\"}"
curl -sS "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members" \
-H "authorization: Bearer ${BEARER_TOKEN}"
curl -sS -X POST "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/search" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"query":"owner","limit":20,"offset":0}'
curl -sS -X POST "${API_BASE_URL}/api/accounts" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"name":"Operations"}'
curl -sS -X PATCH "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"name":"Operations Team"}'
curl -sS -X POST "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"user_id":"uid_target","role":"member"}'
curl -sS -X PATCH "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/${MEMBER_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}" \
-H "content-type: application/json" \
--data '{"role":"owner"}'
curl -sS -X DELETE "${API_BASE_URL}/api/accounts/${ACCOUNT_ID}/members/${MEMBER_ID}" \
-H "authorization: Bearer ${BEARER_TOKEN}"
Remarques
- La non-concordance du chemin du compte renvoie 403.
- Les points de terminaison d’adhésion sont limités au compte et aux rôles.
- Les points de terminaison d’écriture du compte/membre nécessitent le rôle
owner. - La création de membres prend en charge
memberetviewer; la promotion de la propriété utilise un correctif. - L’auto-rétrogradation du propriétaire et la suppression de l’auto-adhésion sont bloquées.
- La rétrogradation ou la suppression du dernier propriétaire renvoie
409.