Preview: IpInfo.php
Size: 1.11 KB
/home/getspomw/royalsquad.us/vendor/stevebauman/location/src/Drivers/IpInfo.php
<?php
namespace Stevebauman\Location\Drivers;
use Illuminate\Support\Fluent;
use Stevebauman\Location\Position;
class IpInfo extends HttpDriver
{
/**
* {@inheritdoc}
*/
public function url(string $ip): string
{
$url = "http://ipinfo.io/$ip";
if ($token = config('location.ipinfo.token')) {
$url .= '?token='.$token;
}
return $url;
}
/**
* {@inheritdoc}
*/
protected function hydrate(Position $position, Fluent $location): Position
{
$position->countryCode = $location->country;
$position->regionName = $location->region;
$position->cityName = $location->city;
$position->postalCode = $location->postal;
$position->timezone = $location->timezone;
if ($location->loc) {
$coords = explode(',', $location->loc);
if (array_key_exists(0, $coords)) {
$position->latitude = $coords[0];
}
if (array_key_exists(1, $coords)) {
$position->longitude = $coords[1];
}
}
return $position;
}
}
Directory Contents
Dirs: 0 × Files: 13