@sinch/mcp
Version:
Sinch MCP server
37 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.closeConferenceHandler = exports.registerCloseConference = void 0;
const zod_1 = require("zod");
const utils_1 = require("../../utils");
const types_1 = require("../../types");
const voice_service_helper_1 = require("./utils/voice-service-helper");
const voice_tools_helper_1 = require("./utils/voice-tools-helper");
const TOOL_KEY = 'closeConference';
const TOOL_NAME = (0, voice_tools_helper_1.getToolName)(TOOL_KEY);
const registerCloseConference = (server, tags) => {
if (!(0, voice_tools_helper_1.shouldRegisterTool)(TOOL_KEY, tags))
return;
server.tool(TOOL_NAME, 'Close a conference callout', {
conferenceId: zod_1.z.string().describe('The conference ID to close')
}, exports.closeConferenceHandler);
};
exports.registerCloseConference = registerCloseConference;
const closeConferenceHandler = async ({ conferenceId }) => {
const maybeClient = (0, voice_service_helper_1.getVoiceClient)(TOOL_NAME);
if ((0, utils_1.isPromptResponse)(maybeClient)) {
return maybeClient.promptResponse;
}
const voiceService = maybeClient.voice;
try {
await voiceService.conferences.kickAll({
conferenceId
});
}
catch (error) {
console.error(`Error closing conference ${conferenceId}:`, error);
return new types_1.PromptResponse(`An error occurred while trying to close the conference with ID ${conferenceId}. Please try again later.`).promptResponse;
}
return new types_1.PromptResponse(`The conference ${conferenceId} has been closed successfully.`).promptResponse;
};
exports.closeConferenceHandler = closeConferenceHandler;
//# sourceMappingURL=close-conference.js.map