예제 #1
0
 function insertOrUpdate(FeedItem $item)
 {
     $existing = $this->db->idps->findOne($this->getQuery($item));
     if ($existing !== null) {
         $existingItem = FeedItem::fromDB($existing);
         if ($existingItem->equalTo($item)) {
             DiscoUtils::log('No changes in metadata ' . tc_colored('SKIP', 'cyan') . ' ' . $item->entityId);
         } else {
             DiscoUtils::log('Metadata is changed, storing changes ' . tc_colored('UPDATE', 'red') . ' ' . $item->entityId);
             $this->update($item);
         }
     } else {
         DiscoUtils::log('Metadata is completely new ' . tc_colored('INSERT', 'green') . ' ' . $item->entityId);
         $this->insert($item);
     }
 }