/** * @param integer $id * * @ApiDoc( * description="Delete Review", * statusCodes={204="Review Deleted"}, * section="Review") * @Route("/api/reviews/{id}") * @Method({"DELETE"}) * @return View */ public function deleteAction($id) { $user = $this->getUser(); $review = $this->reviewRepository->get($id); $this->securityCheck(Permission::WRITE, $review); $this->entityManager->remove($review); $user->decrementReviewsCount(); $this->entityManager->flush(); $this->reviewManager->autoReorderRankingOfReview($review); $this->dispatch(ApiEvent::REVIEW_DELETED, new ReviewDeletedEvent($review)); $this->cacheManager->invalidateOnDelete($review); return $this->view(array(), 204); }