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-08 08:12:07 +0200 |
| commit | 474eebc9b4cf1f78ec621f3bad364a54519c7b45 (patch) | |
| tree | d8029950d4ccaddee77b82e58a4e19e266637923 | |
| parent | efc6527b936c343e6ab5503818c575baedf8d721 (diff) | |
don't let route break when semester filter query parameter is empty (and some...
Closes #5763
Merge request studip/studip!4400
| -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 ba25369..c2f6211 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".'; } } |
