userId; if ($userId === null) { return JsonResponse::fail([], Http::STATUS_FORBIDDEN); } $mailboxes = []; $wasFollowedUp = []; $messages = $this->messageMapper->findByIds($userId, $messageIds, 'ASC'); foreach ($messages as $message) { $mailboxId = $message->getMailboxId(); if (!isset($mailboxes[$mailboxId])) { try { $mailboxes[$mailboxId] = $this->mailboxMapper->findByUid($mailboxId, $userId); } catch (DoesNotExistException $e) { continue; } } $newerMessageIds = $this->threadMapper->findNewerMessageIdsInThread( $mailboxes[$mailboxId]->getAccountId(), $message, ); if (!empty($newerMessageIds)) { $wasFollowedUp[] = $message->getId(); } } return JsonResponse::success([ 'wasFollowedUp' => $wasFollowedUp, ]); } }