示例#1
0
 public function postMessage()
 {
     $required = array('interlocutor_id' => true, 'text' => true);
     $params = $this->controller->getParams($required);
     $thread = \MessagingThread::model()->findOrCreate($this->controller->identity->getId(), $params['interlocutor_id']);
     $message = \MessagingMessage::model()->create($params['text'], $thread->id, $this->controller->identity->getId(), array());
     if (!$message) {
         throw new \Exception(print_r($message->errors, true));
     }
     $message->refresh();
     $this->controller->data = $message;
     $comet = new \CometModel();
     $messageModel = \MessagingMessage::model()->withMyStatsOnTop($this->controller->identity->getId())->findByPk($message->id);
     //self
     $data = array('dialog' => array('id' => $params['interlocutor_id']), 'message' => \DialogForm::messageToJson($messageModel, $this->controller->identity->getId(), $messageModel->messageUsers[1]->user_id, $messageModel->messageUsers[1]));
     $comet->send($this->controller->identity->getId(), $data, \CometModel::MESSAGING_MESSAGE_ADDED);
     //interlocutor
     $data = array('dialog' => array('id' => $this->controller->identity->getId()), 'message' => \DialogForm::messageToJson($messageModel, $messageModel->messageUsers[1]->user_id, $this->controller->identity->getId(), $messageModel->messageUsers[1]));
     $comet->send($params['interlocutor_id'], $data, \CometModel::MESSAGING_MESSAGE_ADDED);
 }