|
@@ -15,17 +15,29 @@ class FreemiumEventBuilder
|
|
|
public function __construct(
|
|
public function __construct(
|
|
|
private EntityManagerInterface $em
|
|
private EntityManagerInterface $em
|
|
|
)
|
|
)
|
|
|
- {
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ {}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Mapping des informations.
|
|
* Mapping des informations.
|
|
|
*
|
|
*
|
|
|
- * @param Event $event : objet target
|
|
|
|
|
|
|
+ * @param Event $event : objet target
|
|
|
* @param FreemiumEvent $freemiumEvent : objet source
|
|
* @param FreemiumEvent $freemiumEvent : objet source
|
|
|
*/
|
|
*/
|
|
|
public function mapInformations(Event $event, FreemiumEvent $freemiumEvent): void
|
|
public function mapInformations(Event $event, FreemiumEvent $freemiumEvent): void
|
|
|
{
|
|
{
|
|
|
|
|
+ $this->mapEventInformations( $event, $freemiumEvent);
|
|
|
|
|
+ $this->mapEventPlaceInformations( $event, $freemiumEvent);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Mapping des informations générales.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param Event $event : objet target
|
|
|
|
|
+ * @param FreemiumEvent $freemiumEvent : objet source
|
|
|
|
|
+ */
|
|
|
|
|
+ private function mapEventInformations(Event $event, FreemiumEvent $freemiumEvent): void
|
|
|
|
|
+ {
|
|
|
|
|
+ //General informations
|
|
|
$event->setName($freemiumEvent->name);
|
|
$event->setName($freemiumEvent->name);
|
|
|
$event->setOrganization($freemiumEvent->organization);
|
|
$event->setOrganization($freemiumEvent->organization);
|
|
|
$event->setDatetimeStart($freemiumEvent->datetimeStart);
|
|
$event->setDatetimeStart($freemiumEvent->datetimeStart);
|
|
@@ -38,49 +50,87 @@ class FreemiumEventBuilder
|
|
|
$event->setPriceMini($freemiumEvent->priceMini);
|
|
$event->setPriceMini($freemiumEvent->priceMini);
|
|
|
$event->setPriceMaxi($freemiumEvent->priceMaxi);
|
|
$event->setPriceMaxi($freemiumEvent->priceMaxi);
|
|
|
|
|
|
|
|
|
|
+ //Catégories
|
|
|
$event->removeAllCategories();
|
|
$event->removeAllCategories();
|
|
|
- foreach ($freemiumEvent->categories as $category){
|
|
|
|
|
|
|
+ foreach ($freemiumEvent->categories as $category) {
|
|
|
$event->addCategory($category);
|
|
$event->addCategory($category);
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- $event->setPlace($this->getEventPlace($freemiumEvent));
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Recherche et mapping du lieu de lévénement
|
|
|
|
|
+ * @param Event $event
|
|
|
|
|
+ * @param FreemiumEvent $freemiumEvent
|
|
|
|
|
+ * @return void
|
|
|
|
|
+ */
|
|
|
|
|
+ private function mapEventPlaceInformations(Event $event, FreemiumEvent $freemiumEvent){
|
|
|
|
|
+ $place = $this->getPlace($freemiumEvent);
|
|
|
|
|
+ if($place !== null){
|
|
|
|
|
+ $this->mapPlaceInformations($place, $freemiumEvent);
|
|
|
|
|
+ $this->em->persist($place);
|
|
|
|
|
+ }
|
|
|
|
|
+ $event->setPlace($place);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * Mapping des informations du lieux et de son adresse postale
|
|
|
* @param FreemiumEvent $freemiumEvent
|
|
* @param FreemiumEvent $freemiumEvent
|
|
|
* @return Place|array|object[]
|
|
* @return Place|array|object[]
|
|
|
*/
|
|
*/
|
|
|
- private function getEventPlace(FreemiumEvent $freemiumEvent){
|
|
|
|
|
|
|
+ private function mapPlaceInformations(Place $place, FreemiumEvent $freemiumEvent): void
|
|
|
|
|
+ {
|
|
|
|
|
+ $addressPostal = $this->getAddressPostal($place);
|
|
|
|
|
+
|
|
|
|
|
+ //Mapping des informations de l'adresse
|
|
|
|
|
+ $addressPostal
|
|
|
|
|
+ ->setStreetAddress($freemiumEvent->streetAddress)
|
|
|
|
|
+ ->setStreetAddressSecond($freemiumEvent->streetAddressSecond)
|
|
|
|
|
+ ->setStreetAddressThird($freemiumEvent->streetAddressThird)
|
|
|
|
|
+ ->setPostalCode($freemiumEvent->postalCode)
|
|
|
|
|
+ ->setAddressCity($freemiumEvent->addressCity)
|
|
|
|
|
+ ->setAddressCountry($freemiumEvent->addressCountry)
|
|
|
|
|
+ ->setLatitude($freemiumEvent->latitude)
|
|
|
|
|
+ ->setLongitude($freemiumEvent->longitude);
|
|
|
|
|
+
|
|
|
|
|
+ //Mapping des informations du lieu
|
|
|
|
|
+ $place
|
|
|
|
|
+ ->setName($freemiumEvent->placeName)
|
|
|
|
|
+ ->setOrganization($freemiumEvent->organization)
|
|
|
|
|
+ ->setAddressPostal($addressPostal);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if($freemiumEvent->place){
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Récupération de la place si définie, sinon on en créer une si un minimum d'information est fournies
|
|
|
|
|
+ * @param FreemiumEvent $freemiumEvent
|
|
|
|
|
+ * @return Place|null
|
|
|
|
|
+ */
|
|
|
|
|
+ private function getPlace(FreemiumEvent $freemiumEvent): ?Place
|
|
|
|
|
+ {
|
|
|
|
|
+ if ($freemiumEvent->place) {
|
|
|
return $freemiumEvent->place;
|
|
return $freemiumEvent->place;
|
|
|
- }else if(
|
|
|
|
|
|
|
+ } else if (
|
|
|
$freemiumEvent->placeName ||
|
|
$freemiumEvent->placeName ||
|
|
|
$freemiumEvent->streetAddress ||
|
|
$freemiumEvent->streetAddress ||
|
|
|
$freemiumEvent->streetAddressSecond ||
|
|
$freemiumEvent->streetAddressSecond ||
|
|
|
$freemiumEvent->streetAddressThird ||
|
|
$freemiumEvent->streetAddressThird ||
|
|
|
$freemiumEvent->postalCode ||
|
|
$freemiumEvent->postalCode ||
|
|
|
$freemiumEvent->addressCity
|
|
$freemiumEvent->addressCity
|
|
|
- )
|
|
|
|
|
- {
|
|
|
|
|
- $place = new Place();
|
|
|
|
|
- $addressPostal = new AddressPostal();
|
|
|
|
|
- $addressPostal
|
|
|
|
|
- ->setStreetAddress($freemiumEvent->streetAddress)
|
|
|
|
|
- ->setStreetAddressSecond($freemiumEvent->streetAddressSecond)
|
|
|
|
|
- ->setStreetAddressThird($freemiumEvent->streetAddressThird)
|
|
|
|
|
- ->setPostalCode($freemiumEvent->postalCode)
|
|
|
|
|
- ->setAddressCity($freemiumEvent->addressCity)
|
|
|
|
|
- ->setAddressCountry($freemiumEvent->addressCountry)
|
|
|
|
|
- ->setLatitude($freemiumEvent->latitude)
|
|
|
|
|
- ->setLongitude($freemiumEvent->longitude)
|
|
|
|
|
- ;
|
|
|
|
|
- $place
|
|
|
|
|
- ->setName($freemiumEvent->placeName)
|
|
|
|
|
- ->setAddressPostal($addressPostal);
|
|
|
|
|
|
|
+ ) {
|
|
|
|
|
+ return new Place();
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- $this->em->persist($place);
|
|
|
|
|
- return $place;
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Récupération de l'adresse postale si définie, sinon on en créer une nouvelle.
|
|
|
|
|
+ * @param Place $place
|
|
|
|
|
+ * @return AddressPostal
|
|
|
|
|
+ */
|
|
|
|
|
+ private function getAddressPostal(Place $place): AddressPostal
|
|
|
|
|
+ {
|
|
|
|
|
+ if ($place->getAddressPostal()) {
|
|
|
|
|
+ return $place->getAddressPostal();
|
|
|
}
|
|
}
|
|
|
|
|
+ return new AddressPostal();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|