44
55use Illuminate \Support \Arr ;
66use Illuminate \Support \Str ;
7+ use GuzzleHttp \Client as GuzzleClient ;
78use PulkitJalan \GeoIP \Drivers \IPApiDriver ;
89use PulkitJalan \GeoIP \Drivers \TelizeDriver ;
910use PulkitJalan \GeoIP \Drivers \IpStackDriver ;
@@ -19,12 +20,18 @@ class GeoIPManager
1920 */
2021 protected $ config ;
2122
23+ /**
24+ * @var \GuzzleHttp\Client
25+ */
26+ protected $ guzzle ;
27+
2228 /**
2329 * @param array $config
2430 */
25- public function __construct (array $ config )
31+ public function __construct (array $ config, GuzzleClient $ guzzle = null )
2632 {
2733 $ this ->config = $ config ;
34+ $ this ->guzzle = $ guzzle ;
2835 }
2936
3037 /**
@@ -52,7 +59,7 @@ public function getDriver($driver = null): AbstractGeoIPDriver
5259 */
5360 protected function createIpStackDriver (array $ data ): IpStackDriver
5461 {
55- return new IpStackDriver ($ data );
62+ return new IpStackDriver ($ data, $ this -> guzzle );
5663 }
5764
5865 /**
@@ -62,7 +69,7 @@ protected function createIpStackDriver(array $data): IpStackDriver
6269 */
6370 protected function createIpApiDriver (array $ data ): IPApiDriver
6471 {
65- return new IPApiDriver ($ data );
72+ return new IPApiDriver ($ data, $ this -> guzzle );
6673 }
6774
6875 /**
@@ -72,7 +79,7 @@ protected function createIpApiDriver(array $data): IPApiDriver
7279 */
7380 protected function createMaxmindDatabaseDriver (array $ data ): MaxmindDatabaseDriver
7481 {
75- return new MaxmindDatabaseDriver ($ data );
82+ return new MaxmindDatabaseDriver ($ data, $ this -> guzzle );
7683 }
7784
7885 /**
@@ -82,7 +89,7 @@ protected function createMaxmindDatabaseDriver(array $data): MaxmindDatabaseDriv
8289 */
8390 protected function createMaxmindApiDriver (array $ data ): MaxmindApiDriver
8491 {
85- return new MaxmindApiDriver ($ data );
92+ return new MaxmindApiDriver ($ data, $ this -> guzzle );
8693 }
8794
8895 /**
@@ -92,6 +99,6 @@ protected function createMaxmindApiDriver(array $data): MaxmindApiDriver
9299 */
93100 protected function createTelizeDriver (array $ data ): TelizeDriver
94101 {
95- return new TelizeDriver ($ data );
102+ return new TelizeDriver ($ data, $ this -> guzzle );
96103 }
97104}
0 commit comments