diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
|---|---|---|
| committer | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
| commit | 4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch) | |
| tree | 5c07151ae61276d334e88f6309c30d439a85c12e /app/routes/Semester.php | |
| parent | da0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff) | |
| parent | 97a188592c679890a25c37ab78463add76a52ff7 (diff) | |
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'app/routes/Semester.php')
| -rw-r--r-- | app/routes/Semester.php | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/app/routes/Semester.php b/app/routes/Semester.php deleted file mode 100644 index bdb1ee7..0000000 --- a/app/routes/Semester.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php -namespace RESTAPI\Routes; - -/** - * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> - * @author <mlunzena@uos.de> - * @license GPL 2 or later - * @deprecated Since Stud.IP 5.0. Will be removed in Stud.IP 6.0. - * - * @condition semester_id ^[0-9a-f]{1,32}$ - */ -class Semester extends \RESTAPI\RouteMap -{ - public function __construct() - { - parent::__construct(); - if (!\Request::int('limit')) { - $this->limit = count(\Semester::getAll()); - } - } - - /** - * Returns a list of all semesters. - * - * @get /semesters - * @allow_nobody - */ - public function getSemesters() - { - $semesters = \Semester::getAll(); - - // paginate - $total = count($semesters); - $semesters = array_slice($semesters, $this->offset, $this->limit); - - $json = []; - foreach ($semesters as $semester) { - $url = $this->urlf('/semester/%s', $semester['semester_id']); - $json[$url] = $this->semesterToJSON($semester); - } - - return $this->paginated($json, $total); - } - - /** - * Returns the semester week as string for a given string - * - * @get /semester/:timestamp/week - * @allow_nobody - */ - public function getSemesterWeek(int $timestamp) - { - $semester = \Semester::findByTimestamp($timestamp); - if (!$semester) { - return null; - } - $timestamp = strtotime('today', $timestamp); - $week_begin_timestamp = strtotime('monday this week', $semester->vorles_beginn); - $end_date = $semester->vorles_ende; - - $i = 0; - $result = [ - 'semester_name' => (string)$semester->name, - 'week_number' => sprintf(_('KW %u'), date('W', $timestamp)), - 'current_day' => strftime('%x', $timestamp) - ]; - while ($week_begin_timestamp < $end_date) { - $next_week_timestamp = strtotime('+1 week', $week_begin_timestamp); - if ($week_begin_timestamp <= $timestamp && $timestamp < $next_week_timestamp) { - $result['sem_week'] = sprintf( - _('%u. Vorlesungswoche (ab %s)'), - $i + 1, - strftime('%x', $week_begin_timestamp)); - break; - } - $i += 1; - - $week_begin_timestamp = $next_week_timestamp; - } - - return $result; - } - - /** - * Returns a single semester. - * - * @get /semester/:semester_id - */ - public function getSemester($id) - { - $semester = \Semester::find($id); - if (!$semester) { - $this->notFound(); - } - - $semester_json = $this->semesterToJSON($semester); - $this->etag(md5(serialize($semester_json))); - - return $semester_json; - } - - private function semesterToJSON($semester) - { - return [ - 'id' => $semester['semester_id'], - 'title' => (string) $semester['name'], - 'token' => (string) $semester['semester_token'], - 'begin' => (int) $semester['beginn'], - 'end' => (int) $semester['ende'], - 'seminars_begin' => (int) $semester['vorles_beginn'], - 'seminars_end' => (int) $semester['vorles_ende'], - 'visible' => (int) $semester['visible'], - ]; - } -} |
