'/update-mapado-event.json', 'method' => 'POST', 'action' => function () { $jsonRequest = file_get_contents("php://input"); $request = json_decode($jsonRequest, true); $id = $request['id']; $request = [ "requestEndPoint" => "ticketings/" . $id, "requestParams" => [], "requestFields" => [ ["name" => "title"], ["name" => "address"], ["name" => "slug"], [ "name" => "eventDateList", "subfields" => [ ["name" => "startDate"], ["name" => "endDate"], ["name" => "bookableStock"] ] ], ] ]; $mapadoEvent = fetchMapadoEvent($request); $duration = null; $sessionsToSave = []; foreach ($mapadoEvent->eventDateList as $session) { $sessionMonth = substr($session->startDate, 0, 7); if ($sessionMonth === $requestMonth) { $day = intval(substr($session->startDate, 8, 2)); $startTime = substr($session->startDate, 11, 5); $eventDateId = explode('/', $session->{'@id'}); $eventDateId = $eventDateId[count($eventDateId) - 1]; if (isset($session->endDate) && !$duration) { $endTime = substr($session->endDate, 11 , 5); $duration = getTimeDifference($startTime, $endTime); } $dates[$day][] = array_merge($eventInfos, [ "day" => $day, "time" => str_replace(':', 'h', $startTime), "duration" => $duration, "ticketingUrl" => 'https://cdn-besancon.mapado.com/event/' . $mapadoEvent->slug . '?eventDate=' . $eventDateId ]); $sessionsToSave[] = [ "date" => substr($session->startDate, 0, 10), "time" => str_replace(':', 'h', $startTime) ]; } } $event->update([ "remoteDuration" => $duration, "remoteSessions" => $sessionsToSave ]); } ];