UNPKG

@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
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, }; }