|
| 1 | +import { |
| 2 | + deleteCredentialGroupMcpConnectorContract, |
| 3 | + updateCredentialGroupMcpConnectorContract, |
| 4 | +} from '@/lib/api/contracts/credential-groups' |
| 5 | +import { |
| 6 | + defineInternalJsonRoute, |
| 7 | + internalRateLimits, |
| 8 | + internalSessionAuth, |
| 9 | +} from '@/lib/api/server/routes' |
| 10 | +import { |
| 11 | + deleteCredentialGroupMcpConnector, |
| 12 | + updateCredentialGroupMcpConnector, |
| 13 | +} from '@/lib/credential-groups/application/manage-mcp-connectors' |
| 14 | +import { credentialGroupOperations } from '@/lib/credential-groups/application/operations' |
| 15 | +import { createCredentialGroupInternalErrorPolicy } from '@/app/api/workspaces/[id]/credential-groups/error-policy' |
| 16 | + |
| 17 | +const rateLimit = internalRateLimits.none({ |
| 18 | + reason: 'Preserve existing internal Credential Group settings behavior', |
| 19 | +}) |
| 20 | + |
| 21 | +export const PATCH = defineInternalJsonRoute({ |
| 22 | + contract: updateCredentialGroupMcpConnectorContract, |
| 23 | + auth: internalSessionAuth, |
| 24 | + operation: credentialGroupOperations.updateMcpConnector, |
| 25 | + rateLimit, |
| 26 | + errorPolicy: createCredentialGroupInternalErrorPolicy('Failed to update managed MCP connector'), |
| 27 | + mapInput: ({ params, body }) => ({ |
| 28 | + assertedWorkspaceId: params.id, |
| 29 | + credentialGroupId: params.groupId, |
| 30 | + connectorId: params.connectorId, |
| 31 | + update: body, |
| 32 | + }), |
| 33 | + useCase: updateCredentialGroupMcpConnector, |
| 34 | + present: ({ mcpServer }) => ({ mcpServer }), |
| 35 | +}) |
| 36 | + |
| 37 | +export const DELETE = defineInternalJsonRoute({ |
| 38 | + contract: deleteCredentialGroupMcpConnectorContract, |
| 39 | + auth: internalSessionAuth, |
| 40 | + operation: credentialGroupOperations.deleteMcpConnector, |
| 41 | + rateLimit, |
| 42 | + errorPolicy: createCredentialGroupInternalErrorPolicy('Failed to remove managed MCP connector'), |
| 43 | + mapInput: ({ params }) => ({ |
| 44 | + assertedWorkspaceId: params.id, |
| 45 | + credentialGroupId: params.groupId, |
| 46 | + connectorId: params.connectorId, |
| 47 | + }), |
| 48 | + useCase: deleteCredentialGroupMcpConnector, |
| 49 | + present: () => ({ success: true as const }), |
| 50 | +}) |
0 commit comments