/**
  * Returns a set of nodes' last read timestamps.
  *
  * @param \Symfony\Component\HttpFoundation\Request $request
  *   The request of the page.
  *
  * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  * @return \Symfony\Component\HttpFoundation\JsonResponse
  *   The JSON response.
  */
 public function renderNewCommentsNodeLinks(Request $request)
 {
     if ($this->currentUser()->isAnonymous()) {
         throw new AccessDeniedHttpException();
     }
     $nids = $request->request->get('node_ids');
     $field_name = $request->request->get('field_name');
     if (!isset($nids)) {
         throw new NotFoundHttpException();
     }
     // Only handle up to 100 nodes.
     $nids = array_slice($nids, 0, 100);
     $links = array();
     foreach ($nids as $nid) {
         $node = $this->entityManager->getStorage('node')->load($nid);
         $new = $this->commentManager->getCountNewComments($node);
         $page_number = $this->entityManager()->getStorage('comment')->getNewCommentPageNumber($node->{$field_name}->comment_count, $new, $node);
         $query = $page_number ? array('page' => $page_number) : NULL;
         $links[$nid] = array('new_comment_count' => (int) $new, 'first_new_comment_link' => $this->getUrlGenerator()->generateFromRoute('entity.node.canonical', array('node' => $node->id()), array('query' => $query, 'fragment' => 'new')));
     }
     return new JsonResponse($links);
 }