44
55use Lamoda \AtolClient \V3 \AtolApi as AtolApiV3 ;
66use Lamoda \AtolClient \V4 \AtolApi as AtolApiV4 ;
7+ use Lamoda \AtolClient \V5 \AtolApi as AtolApiV5 ;
78use Lamoda \AtolClientBundle \AtolClientBundle ;
89use Symfony \Component \Config \FileLocator ;
910use Symfony \Component \DependencyInjection \ContainerBuilder ;
@@ -48,6 +49,11 @@ private function createAtolClients(array $config, ContainerBuilder $container):
4849 $ container ->setAlias ('atol_client.v4 ' , 'atol_client.v4.default ' );
4950 $ container ->setAlias (AtolApiV4::class, 'atol_client.v4.default ' );
5051 }
52+
53+ if ($ container ->hasDefinition ('atol_client.v5.default ' )) {
54+ $ container ->setAlias ('atol_client.v5 ' , 'atol_client.v5.default ' );
55+ $ container ->setAlias (AtolApiV5::class, 'atol_client.v5.default ' );
56+ }
5157 }
5258
5359 private function createAtolClient (string $ name , array $ clientConfig , ContainerBuilder $ container ): void
@@ -59,6 +65,9 @@ private function createAtolClient(string $name, array $clientConfig, ContainerBu
5965 case AtolClientBundle::API_CLIENT_VERSION_4 :
6066 $ this ->createAtolClientV4 ($ name , $ clientConfig , $ container );
6167 break ;
68+ case AtolClientBundle::API_CLIENT_VERSION_5 :
69+ $ this ->createAtolClientV5 ($ name , $ clientConfig , $ container );
70+ break ;
6271 default :
6372 throw new InvalidArgumentException ('Wrong client version: ' . $ clientConfig ['version ' ]);
6473 }
@@ -94,4 +103,19 @@ private function createAtolClientV4(string $name, array $clientConfig, Container
94103
95104 $ container ->setDefinition ($ id , $ definition );
96105 }
106+
107+ private function createAtolClientV5 (string $ name , array $ clientConfig , ContainerBuilder $ container ): void
108+ {
109+ $ definition = new Definition (AtolApiV5::class, [
110+ new Reference ('atol_client.object_converter ' ),
111+ new Reference ($ clientConfig ['guzzle_client ' ]),
112+ $ clientConfig ['guzzle_client_options ' ],
113+ $ clientConfig ['base_url ' ],
114+ ]);
115+ $ definition ->setPublic (false );
116+
117+ $ id = 'atol_client.v5. ' . $ name ;
118+
119+ $ container ->setDefinition ($ id , $ definition );
120+ }
97121}
0 commit comments