Skip to main content
Glama
msw-handlers.ts4.93 kB
import { HttpResponse, http } from "msw"; import type { DocumentationApiResponse } from "../lib/docs/types"; import type * as v1 from "../lib/portal/v1/types"; import type * as v2 from "../lib/portal/v2/types"; import { mockApiError, mockAppsListResponse, mockAuthError, mockAuthResponse, mockBestPracticesDocumentation, mockChatSdkDocumentation, mockCreateAppResponse, mockCreateKeyResponse, mockFaasNoConflictsResponse, mockHowToDocumentation, mockListKeysResponse, mockSdkDocumentation, mockV2App, mockV2AppsListResponse, mockV2CreateKeysetResponse, mockV2KeysetsListResponse, } from "./test-fixtures"; const ADMIN_API_V1_URL = process.env.ADMIN_API_V1_URL ?? "https://admin.pubnub.com/api"; const ADMIN_API_V2_URL = process.env.ADMIN_API_V2_URL ?? "https://admin-api.pubnub.com"; const SDK_DOCS_API_URL = process.env.SDK_DOCS_API_URL ?? "https://docs.pubnubtools.com/api/v1"; // v1 Portal API Handlers export const portalV1Handlers = [ http.post(`${ADMIN_API_V1_URL}/me`, () => { return HttpResponse.json<v1.AuthResponse>(mockAuthResponse); }), http.get(`${ADMIN_API_V1_URL}/apps`, () => { return HttpResponse.json<v1.AppsResponse>(mockAppsListResponse); }), http.post(`${ADMIN_API_V1_URL}/apps`, () => { return HttpResponse.json<v1.AppResponse>(mockCreateAppResponse); }), http.put(`${ADMIN_API_V1_URL}/apps/:id`, () => { return HttpResponse.json<v1.AppResponse>(mockCreateAppResponse); }), http.get(`${ADMIN_API_V1_URL}/keys`, () => { return HttpResponse.json<v1.KeysetsResponse>(mockListKeysResponse); }), http.post(`${ADMIN_API_V1_URL}/keys`, () => { return HttpResponse.json<v1.KeysetResponse>(mockCreateKeyResponse); }), http.put(`${ADMIN_API_V1_URL}/keys/:id`, () => { return HttpResponse.json<v1.KeysetResponse>(mockCreateKeyResponse); }), http.post(`${ADMIN_API_V1_URL}/bizops-dashboards/accounts/:accountId/word-lists`, () => { return HttpResponse.json<v1.CreateWordListRequest>(); }), http.get(`${ADMIN_API_V1_URL}/faas/v1/package-deployments/intersected`, () => { return HttpResponse.json<v1.FaasConflictsResponse>(mockFaasNoConflictsResponse); }), http.post(`${ADMIN_API_V1_URL}/bizops-dashboards/auto-moderation/:accountId/configs`, () => { return HttpResponse.json({}); }), ]; // v2 Admin API Handlers export const portalV2Handlers = [ http.get(`${ADMIN_API_V2_URL}/v2/apps`, () => { return HttpResponse.json<v2.AppsResponse>(mockV2AppsListResponse); }), http.post(`${ADMIN_API_V2_URL}/v2/apps`, () => { return HttpResponse.json<v2.App>(mockV2App, { status: 201 }); }), http.get(`${ADMIN_API_V2_URL}/v2/apps/:id`, () => { return HttpResponse.json<v2.App>(mockV2App); }), http.patch(`${ADMIN_API_V2_URL}/v2/apps/:id`, () => { return HttpResponse.json<v2.App>(mockV2App); }), http.get(`${ADMIN_API_V2_URL}/v2/keysets`, () => { return HttpResponse.json<v2.KeysetsResponse>(mockV2KeysetsListResponse); }), http.post(`${ADMIN_API_V2_URL}/v2/keysets`, () => { return HttpResponse.json<v2.CreateKeysetResponse>(mockV2CreateKeysetResponse, { status: 201 }); }), http.get(`${ADMIN_API_V2_URL}/v2/keysets/:id/config`, () => { return HttpResponse.json<v2.KeysetConfigResponse>(mockV2CreateKeysetResponse.config); }), http.patch(`${ADMIN_API_V2_URL}/v2/keysets/:id/config`, () => { return HttpResponse.json<v2.KeysetConfigResponse>(mockV2CreateKeysetResponse.config); }), ]; export const docsHandlers = [ http.get(`${SDK_DOCS_API_URL}/sdk`, () => { return HttpResponse.json<DocumentationApiResponse>(mockSdkDocumentation); }), http.get(`${SDK_DOCS_API_URL}/chat-sdk`, () => { return HttpResponse.json<DocumentationApiResponse>(mockChatSdkDocumentation); }), http.get(`${SDK_DOCS_API_URL}/how-to`, () => { return HttpResponse.json<DocumentationApiResponse>(mockHowToDocumentation); }), http.get(`${SDK_DOCS_API_URL}/best-practice`, () => { return HttpResponse.json<DocumentationApiResponse>(mockBestPracticesDocumentation); }), ]; export const handlers = [...portalV1Handlers, ...portalV2Handlers, ...docsHandlers]; export const errorHandlers = { authError: () => http.post(`${ADMIN_API_V1_URL}/me`, () => { return HttpResponse.json(mockAuthError, { status: 401 }); }), portalError: (status = 500, message = "Internal Server Error") => http.all(`${ADMIN_API_V1_URL}/*`, () => { return HttpResponse.json(mockApiError, { status, statusText: message }); }), adminApiError: (status = 500, message = "Internal Server Error") => http.all(`${ADMIN_API_V2_URL}/*`, () => { return HttpResponse.json(mockApiError, { status, statusText: message }); }), docsError: (status = 500, message = "Internal Server Error") => http.all(`${SDK_DOCS_API_URL}/*`, () => { return HttpResponse.json(mockApiError, { status, statusText: message }); }), };

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

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