@@ -12,22 +12,35 @@ class SearchAdapter implements Search
1212 /** @var ClientInterface */
1313 private $ client ;
1414
15- public function __construct (ClientInterface $ client )
16- {
15+ /** @var array */
16+ private $ config ;
17+
18+ public function __construct (
19+ ClientInterface $ client ,
20+ array $ config = []
21+ ) {
1722 $ this ->client = $ client ;
23+ $ this ->config = $ config ;
1824 }
1925
2026 public function search (string $ channel , string $ query , array $ params = []): array
2127 {
22- $ params = ['query ' => $ query ] + $ params ;
23- $ response = $ this ->client ->request ('GET ' , "rest/v4/search/ {$ channel }" , ['query ' => $ params ]);
28+ $ params = ['query ' => $ query ] + $ params ;
29+ $ apiVersion = $ this ->getApiVersion ();
30+ $ response = $ this ->client ->request ('GET ' , "rest/ {$ apiVersion }/search/ {$ channel }" , ['query ' => $ params ]);
2431 return (array ) json_decode ((string ) $ response ->getBody (), true );
2532 }
2633
2734 public function suggest (string $ channel , string $ query , array $ params = []): array
2835 {
29- $ params = ['query ' => $ query ] + $ params ;
30- $ response = $ this ->client ->request ('GET ' , "rest/v4/suggest/ {$ channel }" , ['query ' => $ params ]);
36+ $ params = ['query ' => $ query ] + $ params ;
37+ $ apiVersion = $ this ->getApiVersion ();
38+ $ response = $ this ->client ->request ('GET ' , "rest/ {$ apiVersion }/suggest/ {$ channel }" , ['query ' => $ params ]);
3139 return (array ) json_decode ((string ) $ response ->getBody (), true );
3240 }
41+
42+ private function getApiVersion (): string
43+ {
44+ return (string ) $ this ->config ['api_version ' ] ?? 'v4 ' ;
45+ }
3346}
0 commit comments