Skip to main content
Glama

Targetprocess MCP Server

entity-repository.interface.ts2.39 kB
/** * Repository pattern interfaces for entity operations * Provides abstraction over data access layer */ import { SearchParams } from './tp-service.interface.js'; /** * Base repository interface for all entities */ export interface IEntityRepository<T> { /** * Find entities matching criteria */ find(params?: SearchParams): Promise<T[]>; /** * Find a single entity by ID */ findById(id: number, include?: string[]): Promise<T | null>; /** * Create a new entity */ create(data: Partial<T>): Promise<T>; /** * Update an existing entity */ update(id: number, data: Partial<T>): Promise<T>; /** * Delete an entity */ delete(id: number): Promise<boolean>; /** * Count entities matching criteria */ count(params?: SearchParams): Promise<number>; /** * Check if entity exists */ exists(id: number): Promise<boolean>; } /** * Repository for assignable entities (work items) */ export interface IAssignableRepository<T> extends IEntityRepository<T> { /** * Find by assigned user */ findByAssignedUser(userId: number, params?: SearchParams): Promise<T[]>; /** * Find by project */ findByProject(projectId: number, params?: SearchParams): Promise<T[]>; /** * Find by state */ findByState(stateName: string, params?: SearchParams): Promise<T[]>; /** * Assign to user */ assignToUser(entityId: number, userId: number): Promise<T>; /** * Change state */ changeState(entityId: number, stateId: number): Promise<T>; } /** * Unit of work pattern for managing transactions */ export interface IUnitOfWork { /** * Get repository for entity type */ getRepository<T>(entityType: string): IEntityRepository<T>; /** * Begin a transaction */ beginTransaction(): Promise<void>; /** * Commit changes */ commit(): Promise<void>; /** * Rollback changes */ rollback(): Promise<void>; /** * Execute in transaction */ executeInTransaction<T>(work: () => Promise<T>): Promise<T>; } /** * Factory for creating repositories */ export interface IRepositoryFactory { /** * Create repository for entity type */ create<T>(entityType: string): IEntityRepository<T>; /** * Create assignable repository */ createAssignable<T>(entityType: string): IAssignableRepository<T>; }

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/aaronsb/apptio-target-process-mcp'

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