diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2025-08-07 12:15:23 +0200 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2025-08-07 12:15:23 +0200 |
| commit | 563a7f50f4315021a73d57d456e9e1ba5a802098 (patch) | |
| tree | 0fdf204f2ea2cad363c9eeb16be4263e147256b6 /lib | |
| parent | c21b2a599bb5b41c453c7bdf59903fc19d8f3b00 (diff) | |
don't let route break when semester filter query parameter is empty (and some...
Closes #5763
Merge request studip/studip!4400
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/classes/JsonApi/Routes/Courses/CoursesByUserIndex.php | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/classes/JsonApi/Routes/Courses/CoursesByUserIndex.php b/lib/classes/JsonApi/Routes/Courses/CoursesByUserIndex.php index 9f0843a..ae293fd 100644 --- a/lib/classes/JsonApi/Routes/Courses/CoursesByUserIndex.php +++ b/lib/classes/JsonApi/Routes/Courses/CoursesByUserIndex.php @@ -42,7 +42,8 @@ class CoursesByUserIndex extends JsonApiController */ public function __invoke(Request $request, Response $response, array $args): Response { - if (!$user = User::find($args['id'])) { + $user = User::find($args['id']); + if (!$user) { throw new RecordNotFoundException(); } @@ -50,7 +51,8 @@ class CoursesByUserIndex extends JsonApiController throw new AuthorizationFailedException(); } - if ($error = $this->validateFilters()) { + $error = $this->validateFilters(); + if ($error) { throw new BadRequestException($error); } @@ -58,7 +60,7 @@ class CoursesByUserIndex extends JsonApiController $user, $this->getSemesterFilter() ); - list($offset, $limit) = $this->getOffsetAndLimit(); + [$offset, $limit] = $this->getOffsetAndLimit(); return $this->getPaginatedContentResponse( array_slice($courses, $offset, $limit), @@ -71,10 +73,11 @@ class CoursesByUserIndex extends JsonApiController $filtering = $this->getQueryParameters()->getFilteringParameters() ?: []; // semester - if (isset($filtering['semester'])) { - if (!Semester::exists($filtering['semester'])) { - return 'Invalid "semester".'; - } + if ( + !empty($filtering['semester']) + && !Semester::exists($filtering['semester']) + ) { + return 'Invalid "semester".'; } } |
