<?php namespace Wrm\Events\Service\DestinationDataImportService; use Wrm\Events\Domain\Model\Location; use Wrm\Events\Domain\Repository\LocationRepository; class LocationAssignment { /** * @var LocationRepository */ private $repository; public function __construct( LocationRepository $repository ) { $this->repository = $repository; } public function getLocation(array $event): ?Location { $newLocation = new Location( $event['name'] ?? '', $event['street'] ?? '', $event['zip'] ?? '', $event['city'] ?? '', $event['district'] ?? '', $event['country'] ?? '', $event['phone'] ?? '', $event['geo']['main']['latitude'] ?? '', $event['geo']['main']['longitude'] ?? '', -1 ); if ($newLocation->isValid() === false) { return null; } $existingLocation = $this->repository->findOneByGlobalId($newLocation->getGlobalId()); return $existingLocation ?? $newLocation; } }