Skip to content
Snippets Groups Projects
Commit cbf5b3d6 authored by André Noack's avatar André Noack
Browse files

Resolve #3886 "REST-API Routen für den Kalender sind kaputt"

Closes #3886

Merge request studip/studip!2745
parent fe0b8990
No related branches found
No related tags found
No related merge requests found
...@@ -4,12 +4,9 @@ namespace RESTAPI\Routes; ...@@ -4,12 +4,9 @@ namespace RESTAPI\Routes;
use Config; use Config;
use Resource; use Resource;
use Room; use Room;
use SingleCalendar;
use SingleDate;
use Seminar; use Seminar;
use Issue; use Issue;
use CalendarExport;
use CalendarWriterICalendar;
/** /**
* @author André Klaßen <andre.klassen@elan-ev.de> * @author André Klaßen <andre.klassen@elan-ev.de>
...@@ -23,11 +20,6 @@ use CalendarWriterICalendar; ...@@ -23,11 +20,6 @@ use CalendarWriterICalendar;
*/ */
class Events extends \RESTAPI\RouteMap 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 * returns all upcoming events within the next two weeks for a given user
...@@ -53,7 +45,7 @@ class Events extends \RESTAPI\RouteMap ...@@ -53,7 +45,7 @@ class Events extends \RESTAPI\RouteMap
$events = array_slice($list, $this->offset, $this->limit); ; $events = array_slice($list, $this->offset, $this->limit); ;
foreach ($events as $event) { 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[] = [ $json[] = [
'event_id' => $event->id, 'event_id' => $event->id,
...@@ -62,7 +54,7 @@ class Events extends \RESTAPI\RouteMap ...@@ -62,7 +54,7 @@ class Events extends \RESTAPI\RouteMap
'end' => $event->end_time, 'end' => $event->end_time,
'title' => $event->getTitle(), 'title' => $event->getTitle(),
'description' => $event->getDescription() ?: '', 'description' => $event->getDescription() ?: '',
'categories' => $event->toStringCategories() ?: '', 'categories' => $event->getTypeName(),
'room' => $event->getRoomName(), 'room' => $event->getRoomName(),
'canceled' => $event instanceof \CourseExDate || holiday($event->date), 'canceled' => $event instanceof \CourseExDate || holiday($event->date),
]; ];
...@@ -83,15 +75,15 @@ class Events extends \RESTAPI\RouteMap ...@@ -83,15 +75,15 @@ class Events extends \RESTAPI\RouteMap
if ($user_id !== $GLOBALS['user']->id) { if ($user_id !== $GLOBALS['user']->id) {
$this->error(401); $this->error(401);
} }
$calender_writer = new CalendarWriterICalendar(); $end = new \DateTime();
$export = new CalendarExport($calender_writer); $end->setTimestamp(\CalendarDate::NEVER_ENDING);
$export->exportFromDatabase($user_id, 0, 2114377200, 'ALL_EVENTS'); $start = new \DateTime();
$start->modify('-4 week');
if ($GLOBALS['_calendar_error']->getMaxStatus(\ErrorHandler::ERROR_CRITICAL)) { $ical_export = new \ICalendarExport();
$this->halt(500); $ical = $ical_export->exportCalendarDates($user_id, $start, $end)
} . $ical_export->exportCourseDates($user_id, $start, $end)
. $ical_export->exportCourseExDates($user_id, $start, $end);
$content = implode($export->getExport()); $content = $ical_export->writeHeader() . $ical . $ical_export->writeFooter();
$this->contentType('text/calendar'); $this->contentType('text/calendar');
$this->headers([ $this->headers([
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment