File: /www/wwwroot/www.shooperm.com/vendor/stevebauman/location/src/Drivers/IpData.php
<?php
namespace Stevebauman\Location\Drivers;
use Exception;
use Illuminate\Support\Fluent;
use Stevebauman\Location\Position;
class IpData extends Driver
{
/**
* {@inheritdoc}
*/
protected function url($ip)
{
$token = config('location.ipdata.token', '');
return "https://api.ipdata.co/{$ip}?api-key={$token}";
}
/**
* {@inheritdoc}
*/
protected function hydrate(Position $position, Fluent $location)
{
$position->countryName = $location->country_name;
$position->countryCode = $location->country_code;
$position->regionCode = $location->region_code;
$position->regionName = $location->region;
$position->cityName = $location->city;
$position->zipCode = $location->postal;
$position->postalCode = $location->postal;
$position->latitude = (string)$location->latitude;
$position->longitude = (string)$location->longitude;
return $position;
}
/**
* {@inheritdoc}
*/
protected function process($ip)
{
try {
$response = json_decode($this->getUrlContent($this->url($ip)), true);
return new Fluent($response);
} catch (Exception $e) {
return false;
}
}
}