/** */ public function updateCommentIfNewest(Project $project, $bundle, $key, $catalog, $lastModification, $comment) { if (!$bundle || !$lastModification || !$comment || !$key) { return $this->exception('Validation exceptions, missing parameters'); } $keyRecord = $this->getKeyRepository()->findOneBy(array('project' => $project, 'bundle' => $bundle, 'key' => $key, 'catalog' => $catalog)); if (!$keyRecord instanceof Key) { $keyRecord = new Key(); $keyRecord->setBundle($bundle); $keyRecord->setKey($key); $keyRecord->setCatalog($catalog); } else { if ($keyRecord->getUpdatedAt() >= $lastModification) { return $this->resultOk(array('updated' => false, 'message' => $keyRecord->getComment(), 'updatedAt' => $keyRecord->getUpdatedAt()->format('c'))); } } $keyRecord->setComment($comment); $keyRecord->setUpdatedAt($lastModification); $this->em->persist($keyRecord); $this->em->flush($keyRecord); return $this->resultOk(array('updated' => true, 'message' => $keyRecord->getComment(), 'updatedAt' => $keyRecord->getUpdatedAt()->format('c'))); }