Added Connection-Type, Domain, and ISP databases

This commit is contained in:
Gregory Oschwald
2014-06-17 09:29:14 -07:00
parent 9f0c743afd
commit 22babda1c9
9 changed files with 249 additions and 51 deletions
+36 -4
View File
@@ -125,7 +125,42 @@ class Reader implements ProviderInterface
return $this->modelFor('Omni', $ipAddress);
}
public function connectionType($ipAddress)
{
return $this->flatModelFor('ConnectionType', $ipAddress);
}
public function domain($ipAddress)
{
return $this->flatModelFor('Domain', $ipAddress);
}
public function isp($ipAddress)
{
return $this->flatModelFor('Isp', $ipAddress);
}
private function modelFor($class, $ipAddress)
{
$record = $this->getRecord($ipAddress);
$record['traits']['ip_address'] = $ipAddress;
$class = "GeoIp2\\Model\\" . $class;
return new $class($record, $this->locales);
}
private function flatModelFor($class, $ipAddress)
{
$record = $this->getRecord($ipAddress);
$record['ip_address'] = $ipAddress;
$class = "GeoIp2\\Model\\" . $class;
return new $class($record);
}
private function getRecord($ipAddress)
{
$record = $this->dbReader->get($ipAddress);
if ($record === null) {
@@ -133,10 +168,7 @@ class Reader implements ProviderInterface
"The address $ipAddress is not in the database."
);
}
$record['traits']['ip_address'] = $ipAddress;
$class = "GeoIp2\\Model\\" . $class;
return new $class($record, $this->locales);
return $record;
}
/**