/** * Set common config or current host nad language config * @param Integer $hostLangId * @throws InvalidArgumentException */ public function setCommonOrHostLang($hostLangId) { if (!is_numeric($hostLangId)) { throw new InvalidArgumentException('Host Langauge id is not numeric!'); } $orX = new Orx(); $orX->add($this->qb->expr()->isNull(new Field("host_lang_id", "cdb"))); $orX->add($this->qb->expr()->equal(new Field("host_lang_id", "cdb"), $hostLangId)); $this->qb->andWhere($orX); return $this; }
public function setEitherInterlocutors($userId1, $userId2) { if (empty($userId1) or !is_numeric($userId1)) { throw new InvalidIntegerArgumentException("\$userId1 have to be non zero integer"); } if (empty($userId2) or !is_numeric($userId2)) { throw new InvalidIntegerArgumentException("\$userId2 have to be non zero integer"); } $andClause1 = new Andx(); $andClause1->add($this->qb->expr()->equal(new Field('sender_user_id', 'inv'), $userId1)); $andClause1->add($this->qb->expr()->equal(new Field('receiver_user_id', 'inv'), $userId2)); $andClause2 = new Andx(); $andClause2->add($this->qb->expr()->equal(new Field('sender_user_id', 'inv'), $userId2)); $andClause2->add($this->qb->expr()->equal(new Field('receiver_user_id', 'inv'), $userId1)); $orClause = new Orx(); $orClause->add($andClause1); $orClause->add($andClause2); $this->qb->andWhere($orClause); return $this; }
/** * @param integer $inviterUserId * @param integer $invitedUserId * @deprecated Sessions log insertd by mysql TRIGGER chat_sessions_log */ protected function insertSessionLog($inviterUserId, $invitedUserId) { if ($inviterUserId > $invitedUserId) { $userId1 = $inviterUserId; $userId2 = $invitedUserId; } else { $userId1 = $invitedUserId; $userId2 = $inviterUserId; } $qb = new QueryBuilder(); $qb->select(new Field('id'))->from(Tbl::get('TBL_CHAT_SESSIONS_LOG')); $andClause1 = new Andx(); $andClause1->add($qb->expr()->equal(new Field('user1_id', Tbl::get('TBL_CHAT_SESSIONS_LOG')), $userId1)); $andClause1->add($qb->expr()->equal(new Field('user2_id', Tbl::get('TBL_CHAT_SESSIONS_LOG')), $userId2)); $andClause2 = new Andx(); $andClause2->add($qb->expr()->equal(new Field('user1_id', Tbl::get('TBL_CHAT_SESSIONS_LOG')), $userId2)); $andClause2->add($qb->expr()->equal(new Field('user2_id', Tbl::get('TBL_CHAT_SESSIONS_LOG')), $userId1)); $orClause = new Orx(); $orClause->add($andClause1); $orClause->add($andClause2); $qb->andWhere($orClause); $this->query->exec($qb->getSQL()); $qb = new QueryBuilder(); if ($this->query->countRecords()) { $sesionId = $this->query->fetchField("id"); $qb->update(Tbl::get('TBL_CHAT_SESSIONS_LOG'))->set(new Field('datetime'), date(DEFAULT_DATETIME_FORMAT))->where($qb->expr()->equal(new Field('id'), $sesionId)); } else { $qb->insert(Tbl::get('TBL_CHAT_SESSIONS_LOG'))->values(array('user1_id' => $userId1, 'user2_id' => $userId2, 'datetime' => date(DEFAULT_DATETIME_FORMAT))); } $this->query->exec($qb->getSQL()); return $this->query->affected(); }
/** * CleanUp codes from DB that are too old */ public function cleanUp() { $time = 60 * 60 * 24 * $this->config->cleanUpTimeOut; $qb = new QueryBuilder(); $orX = new Orx(); $andX1 = new Andx(); $andX2 = new Andx(); $andX1->add($qb->expr()->less(new Func('UNIX_TIMESTAMP', new Field('issue_date')), $qb->expr()->diff(new Func('UNIX_TIMESTAMP', new Func('NOW')), $time))); $andX1->add($qb->expr()->equal(new Field('not_cleanable'), 0)); $andX1->add($qb->expr()->isNull(new Field('valid_until'))); $andX2->add($qb->expr()->isNotNull(new Field('valid_until'))); $andX2->add($qb->expr()->less(new Field('valid_until'), new Func('NOW'))); $orX->add($andX1); $orX->add($andX2); $qb->delete(Tbl::get('TBL_ONE_TIME_CODES'))->where($orX); $this->query->exec($qb->getSQL()); return $this->query->affected(); }
public function setAllMessagesWithInterlocutors($myUserId, $interlocutorsIds) { if (empty($myUserId) or !is_numeric($myUserId)) { throw new InvalidArgumentException("\$myUserId have to be non zero integer"); } if (!is_array($interlocutorsIds)) { throw new InvalidArgumentException("\$interlocutorsIds have to be array"); } $andClause1 = new Andx(); $andClause1->add($this->qb->expr()->equal(new Field('receiver_user_id', 'chat_msg'), $myUserId)); $andClause1->add($this->qb->expr()->in(new Field('sender_user_id', 'chat_msg'), $interlocutorsIds)); $andClause2 = new Andx(); $andClause2->add($this->qb->expr()->equal(new Field('sender_user_id', 'chat_msg'), $myUserId)); $andClause2->add($this->qb->expr()->in(new Field('receiver_user_id', 'chat_msg'), $interlocutorsIds)); $orClause = new Orx(); $orClause->add($andClause1); $orClause->add($andClause2); $this->qb->andWhere($orClause); return $this; }