From 0e04968bc281446b6ee90764c75157c9e415dcd2 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya <alejandro@alejandrocelaya.com> Date: Tue, 31 Dec 2019 23:37:49 +0100 Subject: [PATCH] Changed latitude and longitude to float --- docs/swagger/definitions/VisitLocation.json | 4 ++-- .../v1_short-urls_{shortCode}_visits.json | 4 ++-- module/Core/src/Entity/VisitLocation.php | 24 +++++++++---------- .../src/Visit/Model/UnknownVisitLocation.php | 12 +++++----- .../Visit/Model/VisitLocationInterface.php | 4 ++-- module/Core/test/Entity/VisitLocationTest.php | 10 -------- 6 files changed, 24 insertions(+), 34 deletions(-) diff --git a/docs/swagger/definitions/VisitLocation.json b/docs/swagger/definitions/VisitLocation.json index e4c9fc90..7e2fa18c 100644 --- a/docs/swagger/definitions/VisitLocation.json +++ b/docs/swagger/definitions/VisitLocation.json @@ -11,10 +11,10 @@ "type": "string" }, "latitude": { - "type": "string" + "type": "number" }, "longitude": { - "type": "string" + "type": "number" }, "regionName": { "type": "string" diff --git a/docs/swagger/paths/v1_short-urls_{shortCode}_visits.json b/docs/swagger/paths/v1_short-urls_{shortCode}_visits.json index 4d1c1c6a..2369ba13 100644 --- a/docs/swagger/paths/v1_short-urls_{shortCode}_visits.json +++ b/docs/swagger/paths/v1_short-urls_{shortCode}_visits.json @@ -105,8 +105,8 @@ "cityName": "Cupertino", "countryCode": "US", "countryName": "United States", - "latitude": "37.3042", - "longitude": "-122.0946", + "latitude": 37.3042, + "longitude": -122.0946, "regionName": "California", "timezone": "America/Los_Angeles" } diff --git a/module/Core/src/Entity/VisitLocation.php b/module/Core/src/Entity/VisitLocation.php index ebc8829a..641b078e 100644 --- a/module/Core/src/Entity/VisitLocation.php +++ b/module/Core/src/Entity/VisitLocation.php @@ -14,8 +14,8 @@ class VisitLocation extends AbstractEntity implements VisitLocationInterface private string $countryName; private string $regionName; private string $cityName; - private string $latitude; // FIXME Should be float - private string $longitude; // FIXME Should be float + private float $latitude; + private float $longitude; private string $timezone; public function __construct(Location $location) @@ -25,22 +25,22 @@ class VisitLocation extends AbstractEntity implements VisitLocationInterface public function getCountryName(): string { - return $this->countryName ?? ''; + return $this->countryName; } - public function getLatitude(): string + public function getLatitude(): float { - return $this->latitude ?? ''; + return $this->latitude; } - public function getLongitude(): string + public function getLongitude(): float { - return $this->longitude ?? ''; + return $this->longitude; } public function getCityName(): string { - return $this->cityName ?? ''; + return $this->cityName; } private function exchangeLocationInfo(Location $info): void @@ -49,8 +49,8 @@ class VisitLocation extends AbstractEntity implements VisitLocationInterface $this->countryName = $info->countryName(); $this->regionName = $info->regionName(); $this->cityName = $info->city(); - $this->latitude = (string) $info->latitude(); - $this->longitude = (string) $info->longitude(); + $this->latitude = $info->latitude(); + $this->longitude = $info->longitude(); $this->timezone = $info->timeZone(); } @@ -74,8 +74,8 @@ class VisitLocation extends AbstractEntity implements VisitLocationInterface $this->countryName === '' && $this->regionName === '' && $this->cityName === '' && - ((float) $this->latitude) === 0.0 && - ((float) $this->longitude) === 0.0 && + $this->latitude === 0.0 && + $this->longitude === 0.0 && $this->timezone === ''; } } diff --git a/module/Core/src/Visit/Model/UnknownVisitLocation.php b/module/Core/src/Visit/Model/UnknownVisitLocation.php index baf056b4..b8926bd5 100644 --- a/module/Core/src/Visit/Model/UnknownVisitLocation.php +++ b/module/Core/src/Visit/Model/UnknownVisitLocation.php @@ -11,14 +11,14 @@ final class UnknownVisitLocation implements VisitLocationInterface return 'Unknown'; } - public function getLatitude(): string + public function getLatitude(): float { - return '0.0'; + return 0.0; } - public function getLongitude(): string + public function getLongitude(): float { - return '0.0'; + return 0.0; } public function getCityName(): string @@ -33,8 +33,8 @@ final class UnknownVisitLocation implements VisitLocationInterface 'countryName' => 'Unknown', 'regionName' => 'Unknown', 'cityName' => 'Unknown', - 'latitude' => '0.0', - 'longitude' => '0.0', + 'latitude' => 0.0, + 'longitude' => 0.0, 'timezone' => 'Unknown', ]; } diff --git a/module/Core/src/Visit/Model/VisitLocationInterface.php b/module/Core/src/Visit/Model/VisitLocationInterface.php index 992e138f..9a296a28 100644 --- a/module/Core/src/Visit/Model/VisitLocationInterface.php +++ b/module/Core/src/Visit/Model/VisitLocationInterface.php @@ -10,9 +10,9 @@ interface VisitLocationInterface extends JsonSerializable { public function getCountryName(): string; - public function getLatitude(): string; + public function getLatitude(): float; - public function getLongitude(): string; + public function getLongitude(): float; public function getCityName(): string; } diff --git a/module/Core/test/Entity/VisitLocationTest.php b/module/Core/test/Entity/VisitLocationTest.php index 2ea4befa..f662645d 100644 --- a/module/Core/test/Entity/VisitLocationTest.php +++ b/module/Core/test/Entity/VisitLocationTest.php @@ -10,16 +10,6 @@ use Shlinkio\Shlink\IpGeolocation\Model\Location; class VisitLocationTest extends TestCase { - /** @test */ - public function valuesFoundWhenExchangingArrayAreCastToString(): void - { - $payload = new Location('', '', '', '', 1000.7, -2000.4, ''); - $location = new VisitLocation($payload); - - $this->assertSame('1000.7', $location->getLatitude()); - $this->assertSame('-2000.4', $location->getLongitude()); - } - /** * @test * @dataProvider provideArgs