/**
  * @return \yii\db\ActiveQuery
  */
 public function getDialog()
 {
     return $this->hasOne(InnerMessageDialog::className(), ['id' => 'dialog_id']);
 }
Example #2
0
 /**
  * Send message
  *
  * @return bool
  * @throws BadRequestHttpException
  */
 public function actionSendMessage()
 {
     $id = Yii::$app->request->post('id');
     $type = Yii::$app->request->post('type');
     $message = Yii::$app->request->post('message');
     Yii::$app->response->format = Response::FORMAT_JSON;
     return InnerMessageDialog::isMessageSend($this->user->id, $id, $type, $message);
 }
 /**
  * Check if user dialog is exist
  *
  * @param integer $senderId
  * @param integer $receiverId
  * @param integer $status
  * @return bool|InnerMessageDialog
  */
 public static function isUserDialogExist($senderId, $receiverId, $status = self::STATUS_ACTIVE)
 {
     $dialog = InnerMessageDialog::find()->innerJoin(InnerMessageUser::tableName(), InnerMessageUser::tableName() . '.dialog_id = ' . InnerMessageDialog::tableName() . '.id')->where([InnerMessageDialog::tableName() . '.user_id' => $senderId, InnerMessageUser::tableName() . '.user_id' => $receiverId])->orWhere([InnerMessageDialog::tableName() . '.user_id' => $receiverId, InnerMessageUser::tableName() . '.user_id' => $senderId])->andWhere([InnerMessageDialog::tableName() . '.status' => $status])->groupBy(InnerMessageDialog::tableName() . '.id')->one();
     return !empty($dialog) ? $dialog : false;
 }
Example #4
0
 /**
  * Set messages status viewed
  *
  * @param $userId
  * @param $dialogId
  * @param $messageId
  */
 public static function setReadMessage($userId, $dialogId, $messageId)
 {
     if (InnerMessageDialog::idDialogAllowed($dialogId, $userId)) {
         InnerMessage::updateAll(['view' => self::viewed], ['dialog_id' => $dialogId, 'id' => $messageId]);
     }
 }