UNPKG

survey-mcp-server

Version:

Survey management server handling survey creation, response collection, analysis, and reporting with database access for data management

71 lines (70 loc) 2.35 kB
import { FindOptions, UpdateOptions, DeleteOptions } from 'mongodb'; import { BaseService, ServiceConfig, HealthCheckResult } from './base.js'; export interface DatabaseQuery { filter: any; options?: FindOptions; limit?: number; skip?: number; sort?: any; } export interface DatabaseUpdateQuery { filter: any; update: any; options?: UpdateOptions; } export interface DatabaseDeleteQuery { filter: any; options?: DeleteOptions; } export interface QueryResult<T = any> { data: T[]; total: number; limit: number; skip: number; hasMore: boolean; } export interface ConnectionPoolStats { totalConnections: number; availableConnections: number; checkedOutConnections: number; minPoolSize: number; maxPoolSize: number; } export declare class DatabaseService extends BaseService { private mongoClient; private connectionMap; private queryCount; private errorCount; private lastConnectionCheck; constructor(config?: Partial<ServiceConfig>); initialize(): Promise<void>; protected performHealthCheck(): Promise<HealthCheckResult>; findDocuments<T = any>(collection: string, query: DatabaseQuery, connectionName?: string): Promise<QueryResult<T>>; findDocumentById<T = any>(collection: string, id: any, connectionName?: string): Promise<T | null>; insertDocument<T = any>(collection: string, document: T, connectionName?: string): Promise<T>; updateDocuments(collection: string, query: DatabaseUpdateQuery, connectionName?: string): Promise<{ matchedCount: number; modifiedCount: number; }>; deleteDocuments(collection: string, query: DatabaseDeleteQuery, connectionName?: string): Promise<{ deletedCount: number; }>; aggregateDocuments<T = any>(collection: string, pipeline: any[], connectionName?: string): Promise<T[]>; private getCollection; private isRetryableError; private sanitizeLogData; getConnectionStats(): { [connectionName: string]: any; }; getServiceStats(): { queryCount: number; errorCount: number; successRate: number; lastHealthCheck: Date; connections: { [connectionName: string]: any; }; }; shutdown(): Promise<void>; } export declare const databaseService: DatabaseService;