Updating a single user's information
To change, or update, a user's information, a PATCH request needs to be made. In thise scenario, we'll update a user's status programmatically. To do so, we'll need to:
- Find our user using a query parameter
- Send the appropiate status ID
- Send a PATCH request to the update a user's status endpoint.
We'll use a helper function to do the first task:
Find and set user ID on component mount sample
let userId;
const useEffect(() => {
const userEmail = new URLSearchParams(window.location.search).get('email');
userId = (JSON.parse(localStorage.getItem("users"))).find(u => u.email === userEmail).id;
}, [])
With our user ID identified, we can update their status based on input:
Function to make PATCH request, with user ID appended to endpoint URL sample
const UpdateStatus = async (e) => {
e.preventDefault();
try {
const data = await fetch(
`https://api.zoom.us/v2/contact_center/users/${userId}/status`,
{
method: "PATCH",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_SECRET_TOKEN",
},
body: JSON.stringify({
status_id: statusId,
}),
},
);
} catch (error) {
console.log(`Error: ${error.message}`);
}
};
Demo vs. best practices:
- Users are presumably stored in local storage here, but it's best to use a connected database in enterprise-level scnenarios
- Built-in logic is assumed to use a URL parameter to find the user. There are multiple ways to implement user identifcation, and a best-fitting flow should be decided on for each use-case
- The above code uses a hard-coded status ID. It's best to have status ID's easily accessible, on or offline, for either dynamic or manual input.