From cbf5b3d68c5fbd5fc6cbc9f36a05ac63f0ef78da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de> Date: Mon, 25 Mar 2024 15:21:18 +0000 Subject: [PATCH] =?UTF-8?q?Resolve=20#3886=20"REST-API=20Routen=20f=C3=BCr?= =?UTF-8?q?=20den=20Kalender=20sind=20kaputt"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #3886 Merge request studip/studip!2745 --- app/routes/Events.php | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/app/routes/Events.php b/app/routes/Events.php index 3612d9a5a37..368d6150af9 100644 --- a/app/routes/Events.php +++ b/app/routes/Events.php @@ -4,12 +4,9 @@ namespace RESTAPI\Routes; use Config; use Resource; use Room; -use SingleCalendar; -use SingleDate; use Seminar; use Issue; -use CalendarExport; -use CalendarWriterICalendar; + /** * @author André Klaßen <andre.klassen@elan-ev.de> @@ -23,11 +20,6 @@ use CalendarWriterICalendar; */ class Events extends \RESTAPI\RouteMap { - public function before($router, &$handler, &$parameters) - { - require_once 'lib/calendar/CalendarExportFile.class.php'; - require_once 'lib/calendar/CalendarWriterICalendar.class.php'; - } /** * returns all upcoming events within the next two weeks for a given user @@ -53,7 +45,7 @@ class Events extends \RESTAPI\RouteMap $events = array_slice($list, $this->offset, $this->limit); ; foreach ($events as $event) { - $course_uri = $this->urlf('/course/%s', [htmlReady($event->course_id)]); + $course_uri = $this->urlf('/course/%s', [htmlReady($event->range_id)]); $json[] = [ 'event_id' => $event->id, @@ -62,7 +54,7 @@ class Events extends \RESTAPI\RouteMap 'end' => $event->end_time, 'title' => $event->getTitle(), 'description' => $event->getDescription() ?: '', - 'categories' => $event->toStringCategories() ?: '', + 'categories' => $event->getTypeName(), 'room' => $event->getRoomName(), 'canceled' => $event instanceof \CourseExDate || holiday($event->date), ]; @@ -83,15 +75,15 @@ class Events extends \RESTAPI\RouteMap if ($user_id !== $GLOBALS['user']->id) { $this->error(401); } - $calender_writer = new CalendarWriterICalendar(); - $export = new CalendarExport($calender_writer); - $export->exportFromDatabase($user_id, 0, 2114377200, 'ALL_EVENTS'); - - if ($GLOBALS['_calendar_error']->getMaxStatus(\ErrorHandler::ERROR_CRITICAL)) { - $this->halt(500); - } - - $content = implode($export->getExport()); + $end = new \DateTime(); + $end->setTimestamp(\CalendarDate::NEVER_ENDING); + $start = new \DateTime(); + $start->modify('-4 week'); + $ical_export = new \ICalendarExport(); + $ical = $ical_export->exportCalendarDates($user_id, $start, $end) + . $ical_export->exportCourseDates($user_id, $start, $end) + . $ical_export->exportCourseExDates($user_id, $start, $end); + $content = $ical_export->writeHeader() . $ical . $ical_export->writeFooter(); $this->contentType('text/calendar'); $this->headers([ -- GitLab