aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2025-08-07 12:15:23 +0200
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2025-08-08 08:12:12 +0200
commit57dea9f7b655e8e3b9a9ee14dbcf590cafb8aa9a (patch)
treed81fe801670e744e0542ebce99653cd2a607f5f8 /lib
parent4a46a041d45e6b707a9a4edb8dcd5888b63b55f9 (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.php17
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".';
}
}