protected function getChatSessionObject($sessionRow, $myUserId = null) { if (empty($sessionRow) or !is_array($sessionRow)) { throw new InvalidArgumentException("Invalid \$sessionRow specified!"); } $chatSession = new ChatSession(); if ($myUserId !== null) { if ($sessionRow['inviter_user_id'] == $myUserId) { $interlocutorUserId = $sessionRow['invited_user_id']; } else { $interlocutorUserId = $sessionRow['inviter_user_id']; } $chatSession->chatterUser = ChatUser::getObject($myUserId); $chatSession->interlocutorUser = ChatUser::getObject($interlocutorUserId); } else { $chatSession->chatterUser = ChatUser::getObject($sessionRow['inviter_user_id']); $chatSession->interlocutorUser = ChatUser::getObject($sessionRow['invited_user_id']); } $chatSession->id = $sessionRow['id']; $chatSession->startDate = $sessionRow['date']; $chatSession->closed = $sessionRow['closed']; $chatSession->closedBy = $sessionRow['closed_by']; $chatSession->closedReason = $sessionRow['closed_reason']; $chatSession->closedDate = $sessionRow['closed_date']; return $chatSession; }
protected function getChatMessage($messageRow) { $chatMessage = new ChatMessage(); $chatMessage->id = $messageRow['id']; $chatMessage->senderUser = ChatUser::getObject($messageRow['sender_user_id']); $chatMessage->receiverUser = ChatUser::getObject($messageRow['receiver_user_id']); $chatMessage->datetime = $messageRow['datetime']; $chatMessage->message = nl2br(htmlentities($messageRow['message'], ENT_COMPAT, 'UTF-8')); $chatMessage->is_system = $messageRow['is_system']; return $chatMessage; }
protected function getInvitationObject($invitationRow) { if (empty($invitationRow) or !is_array($invitationRow)) { throw new InvalidArgumentException("Invalid \$invitationRow specified!"); } $invitation = new ChatInvitation(); $invitation->id = $invitationRow['id']; $invitation->inviterUser = ChatUser::getObject($invitationRow['sender_user_id']); $invitation->invitedUser = ChatUser::getObject($invitationRow['receiver_user_id']); $invitation->invitationMessage = $invitationRow['invitation_message']; $invitation->status = $invitationRow['status']; return $invitation; }
public function getChatSessionsLog(MysqlPager $pager = null, $myUserId = null, $cacheMinutes = 0) { $sessions = array(); $qb = new QueryBuilder(); $qb->select(new Field("*", "chat_sess_log"))->from(Tbl::get('TBL_CHAT_SESSIONS_LOG'), "chat_sess_log"); if ($myUserId !== null) { $orClause = new Orx(); $orClause->add($qb->expr()->equal(new Field("user1_id", "chat_sess_log"), $myUserId)); $orClause->add($qb->expr()->equal(new Field("user2_id", "chat_sess_log"), $myUserId)); $qb->andWhere($orClause); } $qb->orderBy(new Field("datetime", "chat_sess_log"), MySqlDatabase::ORDER_DESC); $sqlQuery = $qb->getSQL(); if ($pager !== null) { $this->query = $pager->executePagedSQL($sqlQuery, $cacheMinutes); } else { $this->query->exec($sqlQuery, $cacheMinutes); } if ($this->query->countRecords()) { while (($sesLogRow = $this->query->fetchRecord()) != null) { $chatSession = new ChatSessionLog(); $chatSession->user1 = ChatUser::getObject($sesLogRow['user1_id']); $chatSession->user2 = ChatUser::getObject($sesLogRow['user2_id']); $chatSession->id = $sesLogRow['id']; $chatSession->closedDate = $sesLogRow['datetime']; array_push($sessions, $chatSession); } } return $sessions; }