Skip to main content
Glama
client.ts3.96 kB
import { z } from 'zod'; import { router, protectedProcedure } from '../trpc'; // ============================================================================ // CLIENT ROUTER // ============================================================================ export const clientRouter = router({ getAll: protectedProcedure .input( z .object({ searchText: z.string().optional(), clientIds: z.array(z.string()).optional(), lastModifiedDate: z.string().optional(), isProspect: z.boolean().optional(), limit: z.number().optional(), offset: z.number().optional(), }) .optional() ) .query(async ({ ctx, input }) => { return ctx.mindbody.getClients(input); }), getById: protectedProcedure .input(z.object({ clientId: z.string() })) .query(async ({ ctx, input }) => { return ctx.mindbody.getClientById(input.clientId); }), search: protectedProcedure .input(z.object({ searchText: z.string() })) .query(async ({ ctx, input }) => { return ctx.mindbody.getClients({ searchText: input.searchText }); }), add: protectedProcedure .input( z.object({ firstName: z.string().min(1), lastName: z.string().min(1), email: z.string().email().optional(), mobilePhone: z.string().optional(), birthDate: z.string().optional(), addressLine1: z.string().optional(), city: z.string().optional(), state: z.string().optional(), postalCode: z.string().optional(), country: z.string().optional(), emergencyContactName: z.string().optional(), emergencyContactPhone: z.string().optional(), emergencyContactRelationship: z.string().optional(), sendAccountEmails: z.boolean().optional(), referredBy: z.string().optional(), }) ) .mutation(async ({ ctx, input }) => { return ctx.mindbody.addClient(input); }), update: protectedProcedure .input( z.object({ clientId: z.string(), firstName: z.string().optional(), lastName: z.string().optional(), email: z.string().email().optional(), mobilePhone: z.string().optional(), birthDate: z.string().optional(), addressLine1: z.string().optional(), city: z.string().optional(), state: z.string().optional(), postalCode: z.string().optional(), emergencyContactName: z.string().optional(), emergencyContactPhone: z.string().optional(), sendAccountEmails: z.boolean().optional(), }) ) .mutation(async ({ ctx, input }) => { return ctx.mindbody.updateClient(input); }), getVisits: protectedProcedure .input( z.object({ clientId: z.string(), startDate: z.string().optional(), endDate: z.string().optional(), }) ) .query(async ({ ctx, input }) => { return ctx.mindbody.getClientVisits(input); }), getMemberships: protectedProcedure .input( z.object({ clientId: z.string(), locationId: z.number().optional(), }) ) .query(async ({ ctx, input }) => { return ctx.mindbody.getClientMemberships(input.clientId, input.locationId); }), getContracts: protectedProcedure .input(z.object({ clientId: z.string() })) .query(async ({ ctx, input }) => { return ctx.mindbody.getClientContracts(input.clientId); }), getAccountBalances: protectedProcedure .input(z.object({ clientId: z.string() })) .query(async ({ ctx, input }) => { return ctx.mindbody.getClientAccountBalances(input.clientId); }), checkIn: protectedProcedure .input( z.object({ clientId: z.string(), locationId: z.number(), }) ) .mutation(async ({ ctx, input }) => { return ctx.mindbody.addClientArrival(input.clientId, input.locationId); }), });

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