Skip to main content
Glama
execute.ts1.4 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import { Hl7Message, createReference, normalizeErrorString } from '@medplum/core'; import type { BotExecutionContext, BotExecutionResult } from '../../bots/types'; import { getConfig } from '../../config/loader'; import { executeFissionFunction } from './utils'; /** * Executes a Bot with Fission. * @param request - The bot request. * @returns The bot execution result. */ export async function executeFissionBot(request: BotExecutionContext): Promise<BotExecutionResult> { const { bot, accessToken, secrets, requester, input, contentType, traceId, headers } = request; const config = getConfig(); const payload = { bot: createReference(bot), baseUrl: config.baseUrl, accessToken, requester, input: input instanceof Hl7Message ? input.toString() : input, contentType, secrets, traceId, headers, }; try { const body = JSON.stringify(payload); const response = await executeFissionFunction(bot.id, body); const responseBody = response ? JSON.parse(response) : undefined; return { success: true, logResult: responseBody?.logResult ?? '', returnValue: responseBody?.returnValue, }; } catch (err) { return { success: false, logResult: normalizeErrorString(err), }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/medplum/medplum'

If you have feedback or need assistance with the MCP directory API, please join our Discord server