|
1 | 1 | import { z } from "zod"; |
2 | 2 | import { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; |
3 | 3 | import { McpTool, McpToolConfig, ReleaseState, Toolset, TelemetryService } from "@salesforce/mcp-provider-api"; |
4 | | -import axios from "axios"; |
5 | | -import { getConnection } from "../shared/auth.js"; |
| 4 | +import { fetchCommitStatus } from "../getCommitStatus.js"; |
6 | 5 |
|
7 | 6 | const inputSchema = z.object({ |
8 | 7 | username: z.string().describe("Username of the DevOps Center org"), |
@@ -56,44 +55,13 @@ export class CheckCommitStatus extends McpTool<InputArgsShape, OutputArgsShape> |
56 | 55 |
|
57 | 56 | public async exec(input: InputArgs): Promise<CallToolResult> { |
58 | 57 | try { |
59 | | - const connection = await getConnection(input.username); |
60 | | - const query = `SELECT Id, Status__c, RequestToken__c FROM DevopsRequestInfo WHERE RequestToken__c = '${input.requestId}' LIMIT 1`; |
61 | | - |
62 | | - const response = await axios.get(`${connection.instanceUrl}/services/data/v60.0/query`, { |
63 | | - headers: { |
64 | | - 'Authorization': `Bearer ${connection.accessToken}`, |
65 | | - 'Content-Type': 'application/json' |
66 | | - }, |
67 | | - params: { q: query } |
68 | | - }); |
69 | | - |
70 | | - if (response.data.records && response.data.records.length > 0) { |
71 | | - const record = response.data.records[0]; |
72 | | - const status = { |
73 | | - requestId: input.requestId, |
74 | | - status: record.Status__c, |
75 | | - recordId: record.Id, |
76 | | - message: `Request ${input.requestId} has status: ${record.Status__c}` |
77 | | - }; |
78 | | - return { |
79 | | - content: [{ |
80 | | - type: "text", |
81 | | - text: JSON.stringify(status, null, 2) |
82 | | - }] |
83 | | - }; |
84 | | - } else { |
85 | | - const status = { |
86 | | - requestId: input.requestId, |
87 | | - status: 'NOT_FOUND', |
88 | | - message: `No record found for request ID: ${input.requestId}` |
89 | | - }; |
90 | | - return { |
91 | | - content: [{ |
92 | | - type: "text", |
93 | | - text: JSON.stringify(status, null, 2) |
94 | | - }] |
95 | | - }; |
96 | | - } |
| 58 | + const status = await fetchCommitStatus(input.username, input.requestId); |
| 59 | + return { |
| 60 | + content: [{ |
| 61 | + type: "text", |
| 62 | + text: JSON.stringify(status, null, 2) |
| 63 | + }] |
| 64 | + }; |
97 | 65 | } catch (error: any) { |
98 | 66 | return { |
99 | 67 | content: [{ |
|
0 commit comments