Add support for named records. Create all the objects for Country model
This commit is contained in:
parent
531e11f3e2
commit
01bf8c2d7c
|
@ -7,14 +7,22 @@ class Country
|
||||||
// XXX - use __get__
|
// XXX - use __get__
|
||||||
public $continent;
|
public $continent;
|
||||||
public $country;
|
public $country;
|
||||||
public $registered_country;
|
public $registeredCountry;
|
||||||
public $represented_country;
|
public $representedCountry;
|
||||||
public $traits;
|
public $traits;
|
||||||
public $raw;
|
public $raw;
|
||||||
|
|
||||||
public function __construct($raw, $language) {
|
public function __construct($raw, $languages) {
|
||||||
$this->country = new \GeoIP2\Record\Country($raw['country']);
|
|
||||||
|
|
||||||
$this->raw = $raw;
|
$this->raw = $raw;
|
||||||
|
|
||||||
|
$this->continent = new \GeoIP2\Record\Continent($this->get('continent'), $languages);
|
||||||
|
$this->country = new \GeoIP2\Record\Country($this->get('country'), $languages);
|
||||||
|
$this->registeredCountry = new \GeoIP2\Record\Country($this->get('registered_country'), $languages);
|
||||||
|
$this->representedCountry = new \GeoIP2\Record\RepresentedCountry($this->get('represented_country'), $languages);
|
||||||
|
$this->traits = new \GeoIP2\Record\Traits($this->get('traits'));
|
||||||
|
}
|
||||||
|
|
||||||
|
private function get($field) {
|
||||||
|
return isset($this->raw[$field]) ? $this->raw[$field] : Array();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,4 +5,17 @@ namespace GeoIP2\Record;
|
||||||
class Country extends AbstractPlaceRecord
|
class Country extends AbstractPlaceRecord
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private $languages;
|
||||||
|
|
||||||
|
public function __construct($record, $languages){
|
||||||
|
$this->languages = $languages;
|
||||||
|
parent::__construct($record);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function name() {
|
||||||
|
foreach($this->languages as $language) {
|
||||||
|
if (isset($this->names[$language])) return $this->names[$language];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -16,14 +16,14 @@ class Client
|
||||||
|
|
||||||
private $user_id;
|
private $user_id;
|
||||||
private $license_key;
|
private $license_key;
|
||||||
private $language;
|
private $languages;
|
||||||
private $base_uri = 'https://geoip.maxmind.com/geoip/v2.0';
|
private $base_uri = 'https://geoip.maxmind.com/geoip/v2.0';
|
||||||
|
|
||||||
public function __construct($user_id, $license_key, $language='en')
|
public function __construct($user_id, $license_key, $languages=array('en'))
|
||||||
{
|
{
|
||||||
$this->user_id = $user_id;
|
$this->user_id = $user_id;
|
||||||
$this->license_key = $license_key;
|
$this->license_key = $license_key;
|
||||||
$this->language = $language;
|
$this->languages = $languages;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function city($ip_address = 'me')
|
public function city($ip_address = 'me')
|
||||||
|
@ -62,7 +62,7 @@ class Client
|
||||||
if ($response->isSuccessful()) {
|
if ($response->isSuccessful()) {
|
||||||
$body = $this->handleSuccess($response, $uri);
|
$body = $this->handleSuccess($response, $uri);
|
||||||
$class = "GeoIP2\\Model\\" . $class;
|
$class = "GeoIP2\\Model\\" . $class;
|
||||||
return new $class($body, $this->language);
|
return new $class($body, $this->languages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user