From 56d0846116eee96abf362d04df425977774d64dc Mon Sep 17 00:00:00 2001 From: Wesley Finck Date: Thu, 23 Oct 2025 21:18:31 -0700 Subject: [PATCH] refactor: encapsulate vector database in SearchService Co-authored-by: aider (anthropic/claude-sonnet-4-20250514) --- src/modules/search/domain/services/SearchService.ts | 4 ++++ .../infrastructure/http/factories/ServiceFactory.ts | 3 --- .../infrastructure/processes/SearchWorkerProcess.ts | 8 ++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/modules/search/domain/services/SearchService.ts b/src/modules/search/domain/services/SearchService.ts index 6143cbe6..64ee71fa 100644 --- a/src/modules/search/domain/services/SearchService.ts +++ b/src/modules/search/domain/services/SearchService.ts @@ -88,6 +88,10 @@ export class SearchService { } } + async healthCheck(): Promise> { + return await this.vectorDatabase.healthCheck(); + } + private async enrichUrlsWithContext( searchResults: Array<{ url: string; diff --git a/src/shared/infrastructure/http/factories/ServiceFactory.ts b/src/shared/infrastructure/http/factories/ServiceFactory.ts index 0cd769ae..1432b8e3 100644 --- a/src/shared/infrastructure/http/factories/ServiceFactory.ts +++ b/src/shared/infrastructure/http/factories/ServiceFactory.ts @@ -72,7 +72,6 @@ export interface SharedServices { configService: EnvironmentConfigService; cookieService: CookieService; searchService: SearchService; - vectorDatabase: IVectorDatabase; } // Web app specific services (includes publishers, auth middleware) @@ -95,8 +94,6 @@ export interface WorkerServices extends SharedServices { eventPublisher: IEventPublisher; createEventSubscriber: (queueName: QueueName) => IEventSubscriber; sagaStateStore: ISagaStateStore; - searchService: SearchService; - vectorDatabase: IVectorDatabase; } // Legacy interface for backward compatibility diff --git a/src/shared/infrastructure/processes/SearchWorkerProcess.ts b/src/shared/infrastructure/processes/SearchWorkerProcess.ts index f9424171..0d67c24c 100644 --- a/src/shared/infrastructure/processes/SearchWorkerProcess.ts +++ b/src/shared/infrastructure/processes/SearchWorkerProcess.ts @@ -28,10 +28,10 @@ export class SearchWorkerProcess extends BaseWorkerProcess { } await services.redisConnection.ping(); - // Validate vector database connection - const vectorDbHealthResult = await services.vectorDatabase.healthCheck(); - if (vectorDbHealthResult.isErr() || !vectorDbHealthResult.value) { - throw new Error('Vector database connection required for search worker'); + // Validate search service (which includes vector database health check) + const searchHealthResult = await services.searchService.healthCheck(); + if (searchHealthResult.isErr() || !searchHealthResult.value) { + throw new Error('Search service connection required for search worker'); } } -- 2.51.2