Esempio n. 1
0
 /**
  * The journal with UUID $uuid has contacted the PLN. Add a record for the
  * journal if there isn't one, otherwise update the timestamp.
  *
  * @param string $uuid
  * @param string $url
  *
  * @return Journal
  */
 private function journalContact($uuid, $url)
 {
     $logger = $this->get('monolog.logger.sword');
     $em = $this->getDoctrine()->getManager();
     $journalRepo = $em->getRepository('AppBundle:Journal');
     $journal = $journalRepo->findOneBy(array('uuid' => $uuid));
     if ($journal !== null) {
         $journal->setTimestamp();
         if ($journal->getUrl() !== $url) {
             $logger->warning("journal URL mismatch - {$uuid} - {$journal->getUrl()} - {$url}");
             $journal->setUrl($url);
         }
     } else {
         $journal = new Journal();
         $journal->setUuid($uuid);
         $journal->setUrl($url);
         $journal->setTimestamp();
         $journal->setTitle('unknown');
         $journal->setIssn('unknown');
         $journal->setStatus('new');
         $journal->setEmail('*****@*****.**');
         $em->persist($journal);
     }
     if ($journal->getStatus() !== 'new') {
         $journal->setStatus('healthy');
     }
     $em->flush($journal);
     return $journal;
 }