isMapadoEvent() != 'true') return; $request = [ "requestEndPoint" => "ticketings/" . $newPage->mapadoId()->value(), "requestParams" => [], "requestFields" => [ ["name" => "title"], ["name" => "address"], ["name" => "slug"], [ "name" => "eventDateList", "subfields" => [ ["name" => "startDate"], ["name" => "endDate"], ["name" => "bookableStock"] ] ], ] ]; $mapadoEvent = fetchMapadoEvent($request); $duration = null; $sessionsToSave = []; if ($mapadoEvent->{"@type"} === 'hydra:Error') { $error = null; if ($newPage->mapadoId()->isEmpty()) { $error = 'Entrez l\'identifiant de l\'événement Mapado dans l\'onglet "Réglages".'; } else { $error = 'Aucun événement Mapado ne correspond à l\'identifiant ' . $newPage->mapado()->value() . '. En êtes-vous sûr•e ?'; } throw new Exception($error, 1); } foreach ($mapadoEvent->eventDateList as $session) { $sessionMonth = substr($session->startDate, 0, 7); $day = intval(substr($session->startDate, 8, 2)); $startTime = substr($session->startDate, 11, 5); $eventDateId = explode('/', $session->{'@id'}); $eventDateId = $eventDateId[count($eventDateId) - 1]; $ticketingUrl = 'https://cdn-besancon.mapado.com/event/' . $mapadoEvent->slug . '?eventDate=' . $eventDateId; if (isset($session->endDate) && !$duration) { $endTime = substr($session->endDate, 11 , 5); $duration = getTimeDifference($startTime, $endTime); } $sessionsToSave[] = [ "date" => substr($session->startDate, 0, 10), "time" => str_replace(':', 'h', $startTime), 'ticketingUrl' => $ticketingUrl ]; } $newPage->update([ "mapadoSlug" => $mapadoEvent->slug, "remoteDuration" => $duration, "remoteSessions" => $sessionsToSave ]); };