UNPKG

businessmap-mcp

Version:

MCP server for Businessmap Kanbanize, exposing tools for managing business entities like boards, cards, and columns, facilitating LLM interaction.

309 lines (308 loc) 9.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.apiServices = void 0; const request_1 = __importDefault(require("../utils/request")); const DEFAULT_ERROR = "UNKNOWN_ERROR"; const DEFAULT_MESSAGE_ERROR = "An unknown mistake occurred"; const DEFAULT_REFERENCE_MESSAGE_ERROR = "Check the logs for more details"; class ApiServices extends request_1.default { handleError(error) { let errorMessage = DEFAULT_MESSAGE_ERROR; if (error instanceof Error) { errorMessage = error.message; } return { error: { code: DEFAULT_ERROR, message: errorMessage, reference: DEFAULT_REFERENCE_MESSAGE_ERROR, }, }; } async getMe() { try { const data = await this.get("/me"); return { data }; } catch (error) { return this.handleError(error); } } async getApiLimits() { try { const data = await this.get("/apiLimits"); return { data }; } catch (error) { return this.handleError(error); } } async getCard(cardId) { try { const data = await this.get(`/cards/${cardId}`); return { data }; } catch (error) { return this.handleError(error); } } async createCard(board_id, title, description, assignee_ids, priority, column_id, lane_id, workflow_id) { try { const data = await this.post(`/cards`, { board_id, title, description, assignee_ids, priority, column_id, lane_id, workflow_id, }); return { data }; } catch (error) { return this.handleError(error); } } async updateCard(card_id, title, description, assignee_ids, priority, column_id, lane_id) { try { const data = await this.patch(`/cards/${card_id}`, { title, description, assignee_ids, priority, column_id, lane_id, }); return { data }; } catch (error) { return this.handleError(error); } } async deleteCard(cardId) { try { await this.delete(`/cards/${cardId}`); return { data: "The card has been deleted" }; } catch (error) { return this.handleError(error); } } async getCards(props) { try { const cardIds = props.card_ids ? `&card_ids=${props.card_ids}` : ""; const boardIds = props.board_ids ? `&board_ids=${props.board_ids}` : ""; const ownerUserIds = props.owner_user_ids ? `&owner_user_ids=${props.owner_user_ids}` : ""; const data = await this.get(`/cards?state=${props.state}&is_blocked=${props.is_blocked}&expand=linked_cards,co_owner_ids,subtasks${cardIds}${boardIds}${ownerUserIds}`); return { data }; } catch (error) { return this.handleError(error); } } async getCardComments(cardId) { try { const data = await this.get(`/cards/${cardId}/comments`); return { data }; } catch (error) { return this.handleError(error); } } async addCardComment(cardId, comment) { try { const data = await this.post(`/cards/${cardId}/comments`, { text: comment, }); return { data }; } catch (error) { return this.handleError(error); } } async getCardComment(cardId, commentId) { try { const data = await this.get(`/cards/${cardId}/comments/${commentId}`); return { data }; } catch (error) { return this.handleError(error); } } async updateCardComment(cardId, commentId, comment) { try { const data = await this.patch(`/cards/${cardId}/comments/${commentId}`, { text: comment, }); return { data }; } catch (error) { return this.handleError(error); } } async deleteCardComment(cardId, commentId) { try { const data = await this.delete(`/cards/${cardId}/comments/${commentId}`); return { data }; } catch (error) { return this.handleError(error); } } async getCardCoOwners(cardId) { try { const data = await this.get(`/cards/${cardId}/coOwners`); return { data }; } catch (error) { return this.handleError(error); } } async checkCardCoOwner(cardId, userId) { try { await this.get(`/cards/${cardId}/coOwners/${userId}`); return { data: true }; } catch (error) { return this.handleError(error); } } async addCardCoOwner(cardId, userId) { try { await this.put(`/cards/${cardId}/coOwners/${userId}`); return { data: "Add a user as a co-owner of a card." }; } catch (error) { return this.handleError(error); } } async removeCardCoOwner(cardId, userId) { try { await this.delete(`/cards/${cardId}/coOwners/${userId}`); return { data: "Remove a user as a co-owner of a card." }; } catch (error) { return this.handleError(error); } } async getLinkedCards(cardId) { try { const data = await this.get(`/cards/${cardId}/linkedCards`); return { data }; } catch (error) { return this.handleError(error); } } async getCardSubtasks(cardId) { try { const data = await this.get(`/cards/${cardId}/subtasks`); return { data }; } catch (error) { return this.handleError(error); } } async getCardSubtask(cardId, subtaskId) { try { const data = await this.get(`/cards/${cardId}/subtasks/${subtaskId}`); return { data }; } catch (error) { return this.handleError(error); } } async addCardSubtask(cardId, description) { try { const data = await this.post(`/cards/${cardId}/subtasks`, { description, }); return { data }; } catch (error) { return this.handleError(error); } } async updateCardSubtask(cardId, subtaskId, description, isFinished) { try { const data = await this.patch(`/cards/${cardId}/subtasks/${subtaskId}`, { description, is_finished: isFinished, }); return { data }; } catch (error) { return this.handleError(error); } } async deleteCardSubtask(cardId, subtaskId) { try { await this.delete(`/cards/${cardId}/subtasks/${subtaskId}`); return { data: "The card subtask has been deleted." }; } catch (error) { return this.handleError(error); } } async getBoards() { try { const data = await this.get(`/boards?if_assigned=1`); return { data }; } catch (error) { return this.handleError(error); } } async getBoard(boardId) { try { const data = await this.get(`/boards/${boardId}`); return { data }; } catch (error) { return this.handleError(error); } } async getUser(user_id) { try { const data = await this.get(`/users/${user_id}`); return { data }; } catch (error) { return this.handleError(error); } } async getColumns(boardId) { try { const data = await this.get(`/boards/${boardId}/columns`); return { data }; } catch (error) { return this.handleError(error); } } async getColumn(boardId, columnId) { try { const data = await this.get(`/boards/${boardId}/columns/${columnId}`); return { data }; } catch (error) { return this.handleError(error); } } async getWorkspace(workspaceId) { try { const data = await this.get(`/workspace/${workspaceId}`); return { data }; } catch (error) { return this.handleError(error); } } } exports.apiServices = new ApiServices();