@makingchatbots/genesys-cloud-mcp-server
Version:
A Model Context Protocol (MCP) server exposing Genesys Cloud tools for LLMs, including sentiment analysis, conversation search, topic detection and more.
43 lines (42 loc) • 1.63 kB
JavaScript
function combineRolesAndDivisions(client, availableDivisions, availableRoles) {
// 1. Create pre-populated Role Map
const roles = new Map(client.roleIds?.map((r) => [r, new Set()]));
// 2. Enrich each Role ID with associated Divisions
for (const roleDivision of client.roleDivisions ?? []) {
const role = roles.get(roleDivision.roleId);
if (role) {
role.add(roleDivision.divisionId);
}
else {
roles.set(roleDivision.roleId, new Set(roleDivision.divisionId));
}
}
// 3. Format into model tool will return
// 3.1 Try to associate names of role and division if available
return Array.from(roles.entries()).map(([roleId, divisionIds]) => {
const roleName = availableRoles.find((d) => d.id === roleId)?.name;
return {
id: roleId,
name: roleName,
divisions: Array.from(divisionIds.values()).map((divisionId) => {
const divisionName = availableDivisions.find((d) => d.id === divisionId)?.name;
return {
id: divisionId,
name: divisionName,
};
}),
};
});
}
export function formatOAuthClientJson(client, availableDivisions, availableRoles) {
return {
id: client.id,
name: client.name,
description: client.description,
roles: combineRolesAndDivisions(client, availableDivisions, availableRoles),
dateCreated: client.dateCreated,
scope: client.scope,
state: client.state,
dateToDelete: client.dateToDelete,
};
}