nouveau-theatre-de-besancon/site/config/routes/update-mapado-event.php
2024-07-30 19:03:01 +02:00

69 lines
1.9 KiB
PHP

<?php
return [
'pattern' => '/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
]);
}
];