Skip to main content
Glama

JIRA MCP Server

sprint.validator.ts2.87 kB
/** * Sprint Validator * * Validator for sprint-related operations and parameters */ import { formatZodError } from "@core/utils/validation"; import { z } from "zod"; import { SprintState } from "../models"; import { SprintIdValidationError, SprintParamsValidationError, } from "./errors/sprint.error"; /** * Schema for getting sprints parameters */ export const getSprintsParamsSchema = z.object({ boardId: z.number().int().min(1, "Board ID must be a positive integer"), // Pagination startAt: z.number().int().min(0).optional().default(0), maxResults: z.number().int().min(1).max(50).optional().default(50), // Filtering options state: z.nativeEnum(SprintState).optional(), }); /** * Type for get sprints parameters */ export type GetSprintsParams = z.infer<typeof getSprintsParamsSchema>; /** * Schema for getting single sprint parameters */ export const getSprintParamsSchema = z.object({ sprintId: z.number().int().min(1, "Sprint ID must be a positive integer"), }); /** * Type for get sprint parameters */ export type GetSprintParams = z.infer<typeof getSprintParamsSchema>; /** * Interface for sprint validator */ export interface SprintValidator { /** * Validate get sprints parameters * * @param params - Parameters to validate * @returns Validated parameters */ validateGetSprintsParams(params: GetSprintsParams): GetSprintsParams; /** * Validate get sprint parameters * * @param params - Parameters to validate * @returns Validated parameters */ validateGetSprintParams(params: GetSprintParams): GetSprintParams; } /** * Implementation of SprintValidator */ export class SprintValidatorImpl implements SprintValidator { /** * Validate parameters for getting sprints * * @param params - Parameters to validate * @returns Validated parameters * @throws SprintParamsValidationError - If validation fails */ public validateGetSprintsParams(params: GetSprintsParams): GetSprintsParams { const result = getSprintsParamsSchema.safeParse(params); if (!result.success) { const errorMessage = `Invalid sprint retrieval parameters: ${formatZodError( result.error, )}`; throw new SprintParamsValidationError(errorMessage, { params }); } return result.data; } /** * Validate parameters for getting a single sprint * * @param params - Parameters to validate * @returns Validated parameters * @throws SprintIdValidationError - If validation fails */ public validateGetSprintParams(params: GetSprintParams): GetSprintParams { const result = getSprintParamsSchema.safeParse(params); if (!result.success) { const errorMessage = `Invalid sprint ID: ${formatZodError(result.error)}`; throw new SprintIdValidationError(errorMessage, { params }); } return result.data; } }

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/Dsazz/mcp-jira'

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