Remove a user's role: Migration guide
This guide outlines the changes introduced in the Remove a user's role v2 endpoint (previously known as deleteUserFromGroup
in v1).
Key changes
- No more input body: The v2 endpoint does not use an input body anymore, as every input parameters are passed along in the endpoint path.
- Identifier type: The v2 endpoint requires user's unique IDs. It no longer accepts an email address as a direct identifier. Migrating requires extra steps if you previously used email. For more information, see the How to identify users in v2 section below.
Documentation links
Here are the links to the API reference for:
Endpoint mapping
Here's the direct correlation between the v1 and v2 endpoint URLs:
- API v1:
/api/v1/groups/:group_id/users/:email
- API v2:
/api/v2/groups/{groupId}/{role}/{userId}
Behavior changes
Private subgroups deletion
The v2 endpoint does not remove the user from the target group private subgroups. You will have to iterate on private subgroups and call this very same endpoint each time to do so.
How to identify users in v2
A key update in v2 is the standardized method for identifying users. For improved security and consistency, you must now use the user's unique internal ID when referencing a user.
- If you already have the internal ID, you can use it directly.
- If you only have the user's email address, you'll need to fetch their internal ID first.
To get the user ID based on their email address:
- Retrieve and cache all users:
Call List all users to retrieve the full list of users in your organization. To ensure your application is performant, this data should be stored in a local database or cache that is updated periodically. - Find the user and get their ID:
Find the user object where themail
field matches the email you are searching for.
Copy the value of their_id
. This is the internal ID.
Input changes
This section details the specific alterations to the input requirements between API versions.
API v1 input example
curl --location -g --request DELETE 'https://{{host}}/api/v1/groups/58eb608a1a92bb4fb56b31a/users/[email protected]' \
--data-urlencode 'company={{company}}' \
--data-urlencode 'apiKey={{apiKey}}'
API v2 input example
curl --request DELETE \
--url https://app.360learning.com/api/v2/groups/507f1f77bcf86cd799439011/learner/507f1f77bcf86cd799439011 \
--header '360-api-version: v2.0' \
--header 'accept: application/json'
Main input differences
Change type | API v1 | API v2 |
---|---|---|
Modified Parameter | user_email (Path parameter, Required): Could be the email or the ID of the user. This parameter email was part of the URL path. | userId (Required): user's internal ID. An email is no longer accepted here.See Behavior changes (section above) for how to get the ID from an email. |
Removed Body parameter | deleteFromPrivateSubgroups (Body parameter, Required): Indicate whether to also remove the user from the target group's private subgroups | Not replaced |
Removed Body parameter | group_id (Body parameter, Required): Unique identifier of the group to remove the user from. | groupId (Path parameter, Required): Unique identifier of the group to remove the user from. |
Output changes
This section details the specific alterations to the successful output returned between API versions.
API v1 output example
// 204 No content
API v2 output example
// 204 No content
Main output differences
No change in output as both versions return a 204 No content
with no response body.
Updated 5 days ago