Skip to main content
Glama
bot-mapper.ts1.74 kB
import type { MessagesListResponse } from '@/client/bots/types/index.js'; import type { MessageInfoBO, MessageListBO, MessageMentionBO, MessageSenderBO, } from '../types/index.js'; export class BotMapper { /** * Convert message sender from API response to BO */ private toMessageSenderBO = ( sender: MessagesListResponse['items'][0]['sender'], ): MessageSenderBO => ({ id: sender.id, idType: sender.id_type, senderType: sender.sender_type, tenantKey: sender.tenant_key, }); /** * Convert message mention from API response to BO */ private toMessageMentionBO = ( mention: NonNullable<MessagesListResponse['items'][0]['mentions']>[0], ): MessageMentionBO => ({ key: mention.key, id: mention.id, idType: mention.id_type, name: mention.name, tenantKey: mention.tenant_key, }); /** * Convert message info from API response to BO */ toMessageInfoBO = ( message: MessagesListResponse['items'][0], ): MessageInfoBO => ({ id: message.message_id, rootId: message.root_id, parentId: message.parent_id, threadId: message.thread_id, type: message.msg_type, createTime: message.create_time, updateTime: message.update_time, isDeleted: message.deleted, isUpdated: message.updated, chatId: message.chat_id, sender: this.toMessageSenderBO(message.sender), content: message.body.content, mentions: message.mentions?.map(this.toMessageMentionBO), }); /** * Convert message list from API response to BO */ toMessageListBO = (data: MessagesListResponse): MessageListBO => ({ messages: data.items.map(this.toMessageInfoBO), hasMore: data.has_more, pageToken: data.page_token, }); }

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/sdd330/feishu-mcp-server'

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