Skip to main content
Glama
trpc.ts1.35 kB
import { initTRPC, TRPCError } from '@trpc/server'; import superjson from 'superjson'; import { ZodError } from 'zod'; import type { PrismaClient } from '@prisma/client'; import { MindbodyService } from '@/lib/mindbody/service'; // ============================================================================ // TRPC CONTEXT & INITIALIZATION // ============================================================================ export interface Context { prisma: PrismaClient; mindbody: MindbodyService; } const t = initTRPC.context<Context>().create({ transformer: superjson, errorFormatter({ shape, error }) { return { ...shape, data: { ...shape.data, zodError: error.cause instanceof ZodError ? error.cause.flatten() : null, }, }; }, }); export const router = t.router; export const publicProcedure = t.procedure; export const middleware = t.middleware; // Middleware to check if Mindbody service is configured const isMindbodyConfigured = middleware(async ({ ctx, next }) => { if (!process.env.MINDBODY_API_KEY || !process.env.MINDBODY_SITE_ID) { throw new TRPCError({ code: 'PRECONDITION_FAILED', message: 'Mindbody API credentials are not configured', }); } return next({ ctx }); }); export const protectedProcedure = publicProcedure.use(isMindbodyConfigured);

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/vespo92/MindbodyMCP'

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