public function changeStatusAction() { if (null !== ($response = $this->checkAuth([], ['comment'], AccessManager::UPDATE))) { return $response; } $message = ["success" => false]; $id = $this->getRequest()->request->get('id'); $status = $this->getRequest()->request->get('status'); if (null !== $id && null !== $status) { try { $event = new CommentChangeStatusEvent(); $event->setId($id)->setNewStatus($status); $this->dispatch(CommentEvents::COMMENT_STATUS_UPDATE, $event); $message = ["success" => true, "data" => ['id' => $id, 'status' => $event->getComment()->getStatus()]]; } catch (\Exception $ex) { $message["error"] = $ex->getMessage(); } } else { $message["error"] = $this->getTranslator()->trans('Missing parameters', [], Comment::MESSAGE_DOMAIN); } return $this->jsonResponse(json_encode($message)); }
public function statusChange(CommentChangeStatusEvent $event) { $changed = false; if (null !== ($comment = CommentQuery::create()->findPk($event->getId()))) { if ($comment->getStatus() !== $event->getNewStatus()) { $comment->setStatus($event->getNewStatus()); $comment->save(); $event->setComment($comment); $this->dispatchRatingCompute($event->getDispatcher(), $comment->getRef(), $comment->getRefId()); } } }