refactor(api): allow router handler injection in tests
This commit is contained in:
+15
-5
@@ -22,6 +22,14 @@ interface IParsedRequestBody {
|
||||
body?: unknown;
|
||||
}
|
||||
|
||||
interface IApiRouterOptions {
|
||||
chatHandler?: ChatHandler;
|
||||
modelsHandler?: ModelsHandler;
|
||||
embeddingsHandler?: EmbeddingsHandler;
|
||||
authMiddleware?: AuthMiddleware;
|
||||
sanityMiddleware?: SanityMiddleware;
|
||||
}
|
||||
|
||||
/**
|
||||
* API Router - routes requests to handlers
|
||||
*/
|
||||
@@ -42,6 +50,7 @@ export class ApiRouter {
|
||||
modelLoader: ModelLoader,
|
||||
clusterCoordinator: ClusterCoordinator,
|
||||
apiKeys: string[],
|
||||
options: IApiRouterOptions = {},
|
||||
) {
|
||||
this.containerManager = containerManager;
|
||||
this.modelRegistry = modelRegistry;
|
||||
@@ -49,22 +58,23 @@ export class ApiRouter {
|
||||
this.clusterCoordinator = clusterCoordinator;
|
||||
|
||||
// Initialize handlers
|
||||
this.chatHandler = new ChatHandler(
|
||||
this.chatHandler = options.chatHandler || new ChatHandler(
|
||||
containerManager,
|
||||
modelRegistry,
|
||||
modelLoader,
|
||||
clusterCoordinator,
|
||||
);
|
||||
this.modelsHandler = new ModelsHandler(containerManager, modelRegistry, clusterCoordinator);
|
||||
this.embeddingsHandler = new EmbeddingsHandler(
|
||||
this.modelsHandler =
|
||||
options.modelsHandler || new ModelsHandler(containerManager, modelRegistry, clusterCoordinator);
|
||||
this.embeddingsHandler = options.embeddingsHandler || new EmbeddingsHandler(
|
||||
containerManager,
|
||||
modelRegistry,
|
||||
clusterCoordinator,
|
||||
);
|
||||
|
||||
// Initialize middleware
|
||||
this.authMiddleware = new AuthMiddleware(apiKeys);
|
||||
this.sanityMiddleware = new SanityMiddleware(modelRegistry);
|
||||
this.authMiddleware = options.authMiddleware || new AuthMiddleware(apiKeys);
|
||||
this.sanityMiddleware = options.sanityMiddleware || new SanityMiddleware(modelRegistry);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user