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:12 +0200 |
| commit | 57dea9f7b655e8e3b9a9ee14dbcf590cafb8aa9a (patch) | |
| tree | d81fe801670e744e0542ebce99653cd2a607f5f8 | |
| parent | 4a46a041d45e6b707a9a4edb8dcd5888b63b55f9 (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".'; } } |
