1- using MapperAI . Core . Chains . Filters ;
2- using MapperAI . Core . Chains . Interfaces ;
3- using MapperAI . Core . Chains . Payloads ;
1+ using MapperAI . Core . Chains ;
42using MapperAI . Core . Clients . Interfaces ;
53using MapperAI . Core . Clients . Models ;
64using MapperAI . Core . Enums ;
7- using MapperAI . Core . Extensions . Utils ;
85using MapperAI . Core . Serializers . Interfaces ;
96
107namespace MapperAI . Core . Clients ;
118
129public class MapperClientFactory ( IMapperSerializer serializer , HttpClient httpClient ) : IMapperClientFactory
1310{
14- private readonly Queue < IFilterHandler > _queueFiltersHandlers = new ( [ new GeminiFilter ( ) , new OllamaFilter ( ) ] ) ;
15- private readonly Queue < IPayloadHandler > _queuePayloadHandlers = new ( [ new GeminiPayload ( ) , new OllamaPayload ( ) ] ) ;
16-
1711 public IMapperClient CreateClient ( MapperClientConfiguration configuration )
1812 {
19- var firstFilterHandler = _queueFiltersHandlers . Dequeue ( ) ;
20- var firstPayloadHandler = _queuePayloadHandlers . Dequeue ( ) ;
21- firstFilterHandler = SetNextHandlers ( firstFilterHandler , null , _queueFiltersHandlers ) ;
22- firstPayloadHandler = SetNextHandlers ( firstPayloadHandler , null , _queuePayloadHandlers ) ;
2313 configuration . Endpoint = GetEndpoint ( configuration ) ;
24- return new GenericMapperClient ( configuration , serializer , httpClient , firstFilterHandler , firstPayloadHandler ) ;
14+ return new GenericMapperClient ( configuration , serializer , httpClient , ChainConfigurator . GetHandlers ( ) ) ;
2515 }
2616
2717 private static string GetEndpoint ( MapperClientConfiguration configuration )
@@ -35,19 +25,4 @@ private static string GetEndpoint(MapperClientConfiguration configuration)
3525 } ;
3626 }
3727
38- private static T SetNextHandlers < T > ( T firstHandler , T ? lastHandler , Queue < T > handlers )
39- where T : class , IHandler
40- {
41- var handler = handlers . DequeueOrDefault ( ) ;
42- if ( handler == null )
43- return firstHandler ;
44-
45- if ( lastHandler == null )
46- firstHandler . SetNext ( handler ) ;
47- else
48- lastHandler . SetNext ( handler ) ;
49-
50- lastHandler = handler ;
51- return SetNextHandlers ( firstHandler , lastHandler , handlers ) ;
52- }
5328}
0 commit comments