aboutsummaryrefslogtreecommitdiff
path: root/app/routes/Semester.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/routes/Semester.php')
-rw-r--r--app/routes/Semester.php115
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'],
- ];
- }
-}