date === null) { throw new BadRequestException('date is required'); } if ($request->userId === null) { throw new BadRequestException('userId is required'); } $date = new DateTimeImmutable($request->date); $userId = $request->userId; $user = $this->userRepo->find($userId); if ($user === null) { throw new DomainException( "User with id: $userId doesnt exist" ); } $scheduledNodes = $this->scheduledNodeRepo->findByUser($user); return array_filter( $scheduledNodes, function (ScheduledNode $node) use ($date) { return $node->getDate() <= $date && $node->getCompleted() === false; } ); } }