Skip to content

Commit 3e47d1e

Browse files
committed
fix: ommit geocoding location if full address is provided
1 parent abe54f5 commit 3e47d1e

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

app/Services/Model/Imp/SummitLocationService.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ public function addLocation(Summit $summit, array $data)
164164
if ($location instanceof SummitGeoLocatedLocation) {
165165
try {
166166
$geo_location_strategy = GeoLocationStrategyFactory::build($location);
167-
$geo_location_strategy->doGeoLocation($location, $this->geo_coding_api);
167+
if(!is_null($geo_location_strategy))
168+
$geo_location_strategy->doGeoLocation($location, $this->geo_coding_api);
168169
} catch (GeoCodingApiException $ex1) {
169170
Log::warning($ex1->getMessage());
170171
$validation_msg = trans('validation_errors.LocationService.addLocation.geoCodingGenericError');
@@ -2639,4 +2640,4 @@ public function updateBookableRoomReservation($summit, int $room_id, int $reserv
26392640

26402641
return $reservation;
26412642
}
2642-
}
2643+
}

app/Services/Model/Strategies/GeoLocation/GeoLocationStrategyFactory.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,19 @@ final class GeoLocationStrategyFactory
2020
{
2121
/**
2222
* @param SummitGeoLocatedLocation $location
23-
* @return IGeoLocationStrategy
23+
* @return IGeoLocationStrategy|null
2424
*/
25-
public static function build(SummitGeoLocatedLocation $location){
26-
if (!empty($location->getAddress1()))
25+
public static function build(SummitGeoLocatedLocation $location):?IGeoLocationStrategy{
26+
$has_address = !empty($location->getAddress1()) &&
27+
!empty($location->getZipCode())&&
28+
!empty($location->getState()) &&
29+
!empty($location->getCity()) &&
30+
!empty($location->getCountry());
31+
$has_lat_lng = !empty($location->getLat()) && !empty($location->getLng());
32+
if ($has_address && !$has_lat_lng)
2733
return new GeoLocationAddressInfoStrategy();
28-
return new GeoLocationReverseStrategy();
34+
if($has_lat_lng && !$has_address)
35+
return new GeoLocationReverseStrategy();
36+
return null;
2937
}
30-
}
38+
}

0 commit comments

Comments
 (0)